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

sql - 在 Redshift 中连接字符串的递归 CTE 替代方案

我有一个表,其中有 4 列,即:Book_no、Prev_Book_no(上一版 book_no)、Edition_no(从 0 开始到最新版 no(增量为 1))、Tree(最初为 null)。

我打算做的是从最高版本到第 0 版创建一棵 Book_no 树。

例如:(Book_no,Prev_Book_no,Edition_no) 值:(bbb,null,0), (ccc,bbb,1), (ddd,ccc,2), (eee,ddd,3), (fff,eee,4)

然后每一行的树应该是:(bbb),(ccc,bbb),(ddd,ccc,bbb),(eee,ddd,ccc,bbb)和(fff,eee,ddd,ccc,bbb)。

为此,我尝试使用递归 CTE,代码如下:

但是 Redshift 不允许在 from 子句中使用 cte table 并给出错误。'表 cte 不存在'。

PS 表中有多种不同的书籍。例如,我只提到了一本。

在 Redshift 中是否有任何替代方案?

编辑:

样本数据:

样本数据

预期输出:

预期产出

逻辑:我想获得书号的层次结构,并且正在使用 concat 操作。(当前代码可能是错误的)谢谢!

0 投票
1 回答
213 浏览

sql - 如何将 CONNECT BY PRIOR Oracle 样式查询重写为 RECURSIVE CTE Postgres 以进行具有相关 WHERE 子句的查询?

现在我对 Oracle 有以下工作查询:

现在我正在尝试为 PostreSQl 实现模拟。根据我的调查,我可以使用递归 CTE。

但我并不成功。我发现的所有示例都没有 where 子句,所以这并不容易。

你能帮我吗?

0 投票
3 回答
262 浏览

sql - 链表:查询存储在 SQL 表中的链表的第一个和最后一个元素

我有一个 SQL 表,其中的“行”表示链表的元素。例如,我可以有以下记录:

我们在此表中有 3 个列表:

我想找到每个列表的最后一个元素和列表中的元素数。我正在寻找的查询将输出:

这在 SQL 中可能吗?

0 投票
3 回答
53 浏览

sql-server - 如何获取包含公司 (ID) 的公司列表?

重要...在我的 RL 项目中,ID 不是 INT,而是 GUID,所以我的数据不是分层的!

我有一张公司表和一张公司之间链接的表。

我需要能够从特定公司 ID 中检索公司列表。

这是我的测试代码...

UDPATE:

如果我需要找到可口可乐所在的公司,那么我会去寻找……

SELECT * FROM ##corporationLinks WHERE FromCorporationID = 2 或 ToCorporationID = 2

然后我会得到2个结果......

在此之后,我需要查看结果属于哪些公司...

然后我会再得到一个公司(7):

然后我需要深入了解与 7 相关的公司......

并深入研究该结果(猜想它被称为递归)。等等

更新 2:

我已经更新了上面的示例,添加了一个如果搜索是 Coca Cola 应该返回的公司。

上述查询(可口可乐)的预期结果:

0 投票
1 回答
123 浏览

sql - Recursive CTE sql query for calculating Rolling returns

My first time writing a recursive CTE in SQL to calculate the rolling returns. Formula : 100*(1+Returns) for first value, and then (RollingReturns)*(1+Returns)

The table is as below:

My attempt at writing the SQL query:

It gives me an error, not sure what is wrong in it.

Any help is appreciated. Thanks in advance!

0 投票
1 回答
19 浏览

ssms - 有没有办法在 SSMS 中为递归 CTE 创建 groupID?

我正在构建一个查询,为我的数据库中的每个根输出所有权层次结构。我正在成功使用递归 CTE,因为我目前可以实现以下数据输出:

我想要实现的是一个组 ID 列,其中的数据可能如下所示:

同样适用于组 200、300 等。对于每棵树。递归 CTE 的哪一部分可以注入这样的代码来实现上述结果?

0 投票
1 回答
35 浏览

sql-server - 在这个例子中是否可以使用递归 CTE?

原始输出如下所示:

![PolNo ControlNo PrevControlNo Premim Policy-00 5000 NULL 1000.00 Policy-01 6000 5000 3200.00 Policy-02 7000 6000 4500.00 Policy-03 8000 7000 3800.00


使用递归 CTE 是否可以获得如下结果?

在此处输入图像描述

我尝试过这样的事情,但它基本上给了我相同的结果:

0 投票
1 回答
169 浏览

sql-server-2012 - 在 SQL SERVER 中使用 RECURSIVE CTE 填充缺失的行

输入

预期输出

我不想使用任何与之一起加入的日历表。我想用递归 CTE 来实现这一点

0 投票
1 回答
51 浏览

sql - Oracle SQL 模拟嵌套窗口函数

我的实际问题涉及更大的行源和更多涉及的数学,但这是一个仍然展示所面临挑战的小例子。使用 Oracle 19c。

假设我们有一个包含四行数据的表 X,如下所示。

此外,假设我们想从 X 中导出两列 a 和 b,使得

  • a = x + sum(按 x 排序的 b 的前几行)
  • b = a - 1。

如果没有先前的行,则总和为 0。

因此,新表将具有如下行。

以下是无效的 SQL,但提供了正在尝试的示例。

也许分层查询可能会有所帮助,但不确定它是通过什么连接的。

任何想法,将不胜感激。提前致谢。

0 投票
2 回答
935 浏览

sql-server - Azure Synapse Analytics 中的递归查询

在下表中,如何在 START_DATE 和 END_DATE 列之间插入包含年份的第一个和最后一个日期的行?

EMPID 企业名称 开始日期 结束日期
1001 希万什 2015-09-01 2018-03-31
1004 马扬克 2019-04-01 2020-06-30

输出应如下所示:

EMPID 企业名称 开始日期 结束日期
1001 希万什 2015-09-01 2015-12-31
1001 希万什 2016-01-01 2016-12-31
1001 希万什 2017-01-01 2017-12-31
1001 希万什 2018-01-01 2018-03-31
1004 马扬克 2019-04-01 2019-12-31
1004 马扬克 2020-01-01 2020-06-30

这必须使用循环来实现,因为Azure Synapse Analytics不支持递归公用表表达式