问题标签 [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.
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 操作。(当前代码可能是错误的)谢谢!
sql - 如何将 CONNECT BY PRIOR Oracle 样式查询重写为 RECURSIVE CTE Postgres 以进行具有相关 WHERE 子句的查询?
现在我对 Oracle 有以下工作查询:
现在我正在尝试为 PostreSQl 实现模拟。根据我的调查,我可以使用递归 CTE。
但我并不成功。我发现的所有示例都没有 where 子句,所以这并不容易。
你能帮我吗?
sql - 链表:查询存储在 SQL 表中的链表的第一个和最后一个元素
我有一个 SQL 表,其中的“行”表示链表的元素。例如,我可以有以下记录:
我们在此表中有 3 个列表:
我想找到每个列表的最后一个元素和列表中的元素数。我正在寻找的查询将输出:
这在 SQL 中可能吗?
sql-server - 如何获取包含公司 (ID) 的公司列表?
重要...在我的 RL 项目中,ID 不是 INT,而是 GUID,所以我的数据不是分层的!
我有一张公司表和一张公司之间链接的表。
我需要能够从特定公司 ID 中检索公司列表。
这是我的测试代码...
UDPATE:
如果我需要找到可口可乐所在的公司,那么我会去寻找……
SELECT * FROM ##corporationLinks WHERE FromCorporationID = 2 或 ToCorporationID = 2
然后我会得到2个结果......
在此之后,我需要查看结果属于哪些公司...
然后我会再得到一个公司(7):
然后我需要深入了解与 7 相关的公司......
并深入研究该结果(猜想它被称为递归)。等等
更新 2:
我已经更新了上面的示例,添加了一个如果搜索是 Coca Cola 应该返回的公司。
上述查询(可口可乐)的预期结果:
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!
ssms - 有没有办法在 SSMS 中为递归 CTE 创建 groupID?
我正在构建一个查询,为我的数据库中的每个根输出所有权层次结构。我正在成功使用递归 CTE,因为我目前可以实现以下数据输出:
我想要实现的是一个组 ID 列,其中的数据可能如下所示:
同样适用于组 200、300 等。对于每棵树。递归 CTE 的哪一部分可以注入这样的代码来实现上述结果?
sql-server-2012 - 在 SQL SERVER 中使用 RECURSIVE CTE 填充缺失的行
输入
预期输出
我不想使用任何与之一起加入的日历表。我想用递归 CTE 来实现这一点
sql - Oracle SQL 模拟嵌套窗口函数
我的实际问题涉及更大的行源和更多涉及的数学,但这是一个仍然展示所面临挑战的小例子。使用 Oracle 19c。
假设我们有一个包含四行数据的表 X,如下所示。
此外,假设我们想从 X 中导出两列 a 和 b,使得
- a = x + sum(按 x 排序的 b 的前几行)
- b = a - 1。
如果没有先前的行,则总和为 0。
因此,新表将具有如下行。
以下是无效的 SQL,但提供了正在尝试的示例。
也许分层查询可能会有所帮助,但不确定它是通过什么连接的。
任何想法,将不胜感激。提前致谢。
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不支持递归公用表表达式