问题标签 [recursive-cte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
248 浏览

sql-server - SQL Recursive CTE:查找按属性链接的对象

我只是想了解 CTE 和递归来解决我以前使用游标解决的问题。

我想要实现的是获取所有 AccNo 的列表,以及它们通过 Property 相关的所有 AccNo。所以我的预期结果是

我尝试了以下代码和变体,但要么只得到 4 个结果(PrimaryAccNo=LinkedAccNo),要么达到 100 个递归。

我究竟做错了什么?

0 投票
1 回答
113 浏览

oracle - 在 Oracle 中计算日期范围内的值(可能使用递归 CTE)

我有一个可以通过递归 CTE 处理的问题,但不是在可接受的时间内。谁能指出我提高性能和/或以不同方式获得相同结果的方法?

这是我的场景!

我有:一个大表,每行包含一个 id、一个开始日期、一个结束日期和一个排名号。每个 id 有多行,日期范围经常重叠。日期从 2010 年开始。

我想要:一个表,其中包含 id + date 的每个组合的行,该行位于上一个表中该 id 的任何日期范围内。每一行都应该具有该 id 和日期的最低排名数字。

例如:

变成

我可以使用递归 CTE 来做到这一点,但性能很糟糕(对于一个相对较小的数据集,它会产生 3100 万行的最终表,需要 20-25 分钟):

0 投票
1 回答
29 浏览

sql - SQL Recursive CTE 意外返回交替集

我试图让使用递归 CTE 一遍又一遍地重复相同的模式,当“场景”值增加时重置。RowNumber 重复 1-21(根据需要),但只要“Scenario”是偶数,“Vals”列中的项目太少,无法输入“Value”。我无法弄清楚代码的哪一部分导致我在甚至场景中都是 1 短。

下面是我在底部使用的代码的结果。

这是我用来生成上述示例的代码。我哪里错了?

0 投票
3 回答
110 浏览

sql - WHERE Column NOT LIKE 在递归 cte 中无法正常工作

这是 SQL Server 代码。

假设您有一个包含三列的表。第 1 列命名为 Monster,第 2 列命名为 Level,第 3 列命名为 BodyType。Level表示怪物的强大程度,BodyType表示它的身体类型。

我的架构:

我有一个 sql 命令来查找怪物的所有可能组合。它使用递归 cte,因为表中的怪物数量可能会波动(所以我可以稍后添加更多怪物)。该命令还获取正在组合的怪物等级的总和值。该命令还只输出低于某个总和值的怪物组合。在此示例中,总和值为 1500。到目前为止,一切都按其应有的方式工作。

我的 sql 命令:

和正确的输出:

我遇到的问题是当我添加 Where 子句以仅带回不属于某种体型(BodyType 列)的怪物时。修改上面的代码部分以实现此目的是:

输出变为以下错误,因为它仍然包含 Slimy 和 Fiery 的身体类型:

输出似乎部分工作,因为 Large Beast 是 Slimy 并且它第一次忽略了它,但我怀疑它在通过 BodyType 的级别时忽略了 NOT LIKE 子句,这就是为什么它在随后的发现中没有忽略 Large Beast 的原因。

0 投票
1 回答
372 浏览

sql-server - 递归 CTE SQL(父子)

我正在使用 SQL Server 2012

LOCATIONDETAIL 表

LOCATIONSITECONFIG 表

我使用递归 CTE 查询

NORTH 现在是 Global 中的一个单独站点。此查询以树结构返回 North 和 North 1,这是可以的。

当我将 Global 作为一个新站点时,我不想将 North 作为 Global 站点的一部分。

示例,添加名为 (NEWTEST) 的站点 2,即 Global

LOCATIONSITECONFIG 表

上面的查询返回 Global , NORTH, NORTH1, SOUTH, SOUTH1 和 NORTH(TEST) AND NORTH1 (重复记录)

我希望查询返回 Global , NORTH (TEST), NORTH1, SOUTH, SOUTH1

如果孩子已经创建了站点,则查询应该忽略。请帮忙

0 投票
1 回答
1025 浏览

sql-server - 如何对 SQL Server 递归 cte 中的列求和以进行优化?

我有下表包含分层数据:

我想在每个文件夹及其所有子文件夹下查找受影响项目的数量。我可以编写一个递归 cte,它可以产生以下结果,然后通过 group by 我可以找出我想要的。

正常递归 CTE:

结果:

但我想优化它,我想从叶子孩子开始,同时通过 CTE 本身,我想计算NumberOfAffectedItems.

预期 CTE

结果:

如果我按 分组ParentFolderId,我会得到错误的结果,原因是在 CTE 中进行计算时,多个子级访问同一个父文件夹,因此导致错误的结果。我想知道我们是否可以在通过 CTE 本身的同时计算结果。

0 投票
2 回答
346 浏览

android - 在树中查询父母

我有如下的数据库表任务。

一张表中的所有任务及其子任务都使用_id(主键)和parentId与各自的父任务相关。

例如,任务名称“java”有 _id = 18 和 parentId = 15 表示“java”是 _id = 15 的子任务,即“语言”。

同样,“语言”的 _id = 15 和 parentId = 6 意味着“语言”是 _id = 6 的子任务,即“编程”。

同样的“编程”是“软件开发”的子任务。

而“软件开发”是 null 的子任务。

所以我需要一个查询,它为输入_id = 18(即'java')提供如下输出,输入_id = 18(即'java')是父任务列表,父任务的父...到子任务的顶部。

目前我可以在一个循环中使用 4 个查询来获取这个输出。

在下一次迭代中,_id 将是来自上述查询输出的 parentId 的值

这很耗时,所以我们可以为此找到更好的解决方案。

0 投票
2 回答
61 浏览

sql - CTE 递归有序树

我用以下数据创建了这个SQL Fiddle

如何返回一棵树,以便按以下顺序返回数据:

我不担心缩进,当然我不能只按名称排序(以防 Fred 被更正为 Alfred)。

这是我到目前为止所得到的:

0 投票
0 回答
1843 浏览

java - Hive 中的递归 CTE

我有一个用 SQL 服务器编写的递归 CTE,我需要迁移到 HIVE。由于 hive 不支持 CTE 中的递归,所以我被困在这里。建议我为此编写一个 java UDF,但我不是 java 专家。如果有人可以在这里提供帮助,我会很棒。

代码(SQL服务器):

0 投票
1 回答
526 浏览

sql-server - SQL Server 2014 合并重叠日期范围

我在 SQL Server 2014 数据库中有一个包含 200.000 行的表,如下所示:

如您所见,每个合同可能有多个重叠,我想要的是这样的结果

我不知道如何做到这一点,而且我在这个网站上看到的例子完全不适合我的问题。