问题标签 [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 投票
0 回答
359 浏览

sql - SQL Server Express - 执行时具有递归 CTE 冻结的 TVP 参数化 TVF

刚刚遇到一个非常奇怪的服务器行为 - 即:

我得到了带有一个 TVP 参数的 TVF,如下所示

继承人TVP:

现在是“奇怪”的部分:

尝试在快速服务器版本上执行功能时 - 它冻结。我的意思是执行时间太长(我在等待 4 分钟后取消执行),而在完整版本上它没有问题(0s - 根本没有数据)。两者都是2008R2,相同的DB,相同的TVF,相同的TVP。TVF的执行如下

但!

当我单独执行 TVF 的主体时 - 它就像一个魅力(WTF?)

我不知道为什么?!快递版是否有一些限制或什么?

0 投票
1 回答
14342 浏览

sql - 递归 CTE-查找经理下的所有员工

我为此SQLFIDDLE创建了一个示例小提琴

我的要求就像显示该特定经理下方的所有员工层次结构

这是我尝试过的

输出 :

我期望的输出是,如果我给 ManagerId 3,那么应该显示以下员工

任何人都可以帮忙吗

0 投票
3 回答
32804 浏览

sql-server - 让所有父母为孩子

我想检索一个 id 的 parentid,如果该 parentid 有一个 parent,则再次检索它,依此类推。一种层次结构表。

我是 sql server 的新手并尝试过,一些查询如下:

它只给了我一排。而且我想将这些记录插入到一​​个临时表变量中。我怎样才能做到这一点。提前致谢。抱歉问这个简单的问题(虽然不是对我)

0 投票
1 回答
439 浏览

mysql - 计算 sql 中分层子级的数量

我有一个存储父、左子和右子信息的表。我如何计算属于该父母的孩子的数量?

例如我的表结构是:

如何计算任何父节点的子节点数。
例如,4 包含以下分层子节点 - 8,9,12,因此子节点数为 3。3
包含以下子节点 -> 4,5,10,11,8,9,12,因此子节点总数为 7。

如何使用 SQL 查询来实现这一点?

0 投票
0 回答
1884 浏览

sql-server - 具有递归 CTE 的 SQL OpenQuery

我有以下递归 CTE,它在 SQL 的 OpenQuery 函数中使用。我使用 OpenQuery 来查询 SQL 链接服务器。

(不工作)

上述 CTE 不起作用。

但是,如果我使用 OpenQuery 执行非递归 CTE,它就可以正常工作。(这有效)

有什么建议么?我在这里错过了什么吗?

0 投票
6 回答
18385 浏览

sql - 在 CTE 中找到无限递归循环

我不是 SQL 专家,但如果有人可以帮助我。

我使用递归 CTE 来获取如下值。

子 1 --> 父 1

父 1 --> 父 2

父 2 --> NULL

如果数据填充出错了,那么我会有类似下面的内容,因此 CTE 可能会进入无限递归循环并给出最大递归错误。由于数据量很大,我无法手动检查这些不良数据。请让我知道是否有办法找到它。

子 1 --> 父 1

父 1 --> 子 1

或者

子 1 --> 父 1

父 1 --> 父 2

父 2 --> 子 1

0 投票
1 回答
9011 浏览

sql - Find All employees reporting to manager, including managers employees

I have a table with at least three columns, EMPLID, NAME, SUPERVISOR_ID. In a single query, I'd like get a managers direct reports including any direct reports from subordinate mangers all the way down to the lowest staff when given a managersid in a WHERE clause.

I can create a query that will show who reports to who:

or recursive CTE that seemingly does the same thing

(the case statement is because the highest manager has the supervisor field reporting to herself)

What I was looking for was the ability to give this query a emplid and see all the way down to staff who reports to that manager. In my two examples, I feel like I can see direct reports, but somehow I should do another join to see the rest of the information.

And a second question kind of related, while researching this, it seems most people solve finding a managers direct reports using a recursive cte when I think it could have been solved using the first query joined to itself. Given the two queries I posted, why would I use a recursive CTE to solve it when I could use the same table joined to itself? It seems like I get the same information back?

If it means anything, this will be run on SQL Server 2012 or 2008.

0 投票
1 回答
565 浏览

postgresql - Postgres:按名称查询层次结构的最佳方法

假设我有如下的类别层次结构:

现在,假设有人给我输入['Computers', 'Laptops', 'Small']。Postgres 中查询层次结构并到达正确的最终类别(例如 id 5)的最佳方法是什么?

我知道您可以使用递归 CTE 遍历树,但是将输入数组参数化到查询中的最佳方法是什么?

以下或多或少有效,但感觉真的低于标准,因为您必须拆分参数数组:

0 投票
2 回答
3545 浏览

sql-server - 查询父子表的所有祖先的递归 CTE 很慢

我们有一个像这样的自引用表

以及获取所有祖先的递归 cte:

现在我们查询给定类别的所有祖先,例如:

仅包含 100000 个类别的表需要 11 秒,执行计划为执行计划. 查询返回给定的 5 行Id

我知道我可以通过 using 大大提高性能hierarchyid,我也知道有时 usingwhile可以提高性能,但在这样一个简单的情况下,我希望看到更好的性能。另外,请注意我已经有一个索引ParentId

(图片显示的表格是问题中提到structure的表格的实际名称。Category

是否有调整可以大大提高此性能?

0 投票
1 回答
663 浏览

android - 修改 CTE 的 SQLite 查询

这是我的查询:

基本上我有一些天气数据,我按小时间隔分组(偏移 30 分钟),我想专门计算在该时间间隔内获得特定天气描述(和匹配图标)的次数,并在其中选择天气描述出现次数最多的时间间隔(计数)(desc_table)。然后我想获得该时间段内的平均温度((avg_temp_table)(也许我需要一个子查询?要做到这一点而不是我如何拥有它)并沿着他们的小时列加入两个查询。

我希望我的锚基于查询的时间(现在)并计算出现次数,然后下一个成员将每次减去一个小时并进入下一个时间间隔并计数等。

样本数据,对于常规数据集 {current_temperatures, current_weather_description, current_icons, time_stamp},每个时间段内会有更多的行:

输出是时间间隔的平均温度 (avg_temp_table) 与第一个聚合 CTE (desc_table) {avg_temp, weather_description, current_icon} 的输出之间的连接:

现在我没有这样的列错误,因为我的锚来自我的 weather_events 表,我的递归成员也是如此。当我将递归成员从更改为 desc_table 时,出现“不支持递归聚合查询错误”。但我不想从 desc_table 中获取我的递归成员,我想按小时分段,然后通过每个小时间隔并获取计数。我猜我一开始也做错了锚。