问题标签 [hierarchical-query]

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 投票
1 回答
293 浏览

sql - 使用图形节点对表数据进行 Oracle sql 分层或递归查询

这是我的具有图形节点的表“graphtable”。每个元组代表一条无向边。

如您所见,此表中有四个不同的无向图。

  1. 节点(A、B、C、D、E)
  2. 节点(L、K、G、M、Y)
  3. 节点(一)
  4. 节点(X,Z)

我尝试了类似于下面发布的查询;

我也可以使用递归查询来遍历图形。

但是,如果我从该特定图中的任何节点开始,我需要获取该特定图中涉及的所有元。但是,我没有从我的任何查询中得到这个结果。

从 nodeone='A' 开始;似乎返回了所有边缘,但边缘“DD”不存在。从 nodeone='D' 开始;似乎没有返回任何接近先前结果的东西。

请帮助..我提前感谢任何帮助。谢谢你。

0 投票
1 回答
90 浏览

oracle - 仅使用 oracle 中的最新行以/通过先前查询开始

我的分层查询如下所示:

我的问题是存在具有相同 ID 'X' 的行,我只希望返回最近的行(当一个进程重复时,它的 ID 是相同的 - 无法更改)。此外,我只希望它通过先前的父 ID 连接最近的行。

从文档看来,我无法在 connect by 中进行查询以获取最新的先前 parent_id - 我需要在代码中过滤还是有办法在查询中执行此操作?

0 投票
1 回答
90 浏览

oracle - 层次结构应用于子集的 Oracle 层次结构查询

我正在为 Oracle SE 创建用于数据库锁定监视的定制工具。基本上我有调度程序工作,它每 10 秒拍摄一次 gv$session 信息的快照,并将其存储在定制的 ashstat_data 表中。

现在,为了方便起见,我正在尝试创建一个视图以分层格式列出会话阻塞链。该视图基于分层选择,将阻塞会话显示为阻塞会话父项下的子项:

到目前为止,只有当我从单个快照(where sample_time>sysdate - interval '10' second)中选择数据时,它才能完美运行:

但是,如果我从多个快照中选择记录(即(where sample_time>sysdate - interval '12' second)),它会根据条件连接来排列它们:

我想要实现的是为每个快照单独表示阻塞链,因此对于整个收集的数据,最后一个选择结果看起来像这样:

0 投票
2 回答
41 浏览

sql - 输出匹配条件的记录,以及它们的父记录直到根记录。甲骨文 SQL

有这样一张Oracle表:

,其中 pid 是父记录的 id。

需要输出所有符合条件的记录,以及它们的父记录直到根记录。此类父记录不应与在搜索阶段找到的父记录重复。

例如,在这种情况下where name = 'testX',应该得到这样的结果:

怎么做?

PS甲骨文11.2.0.4.0。

0 投票
1 回答
216 浏览

oracle - 一张表上的分层多重更新查询 - oracle

我有一个表,这些列相互依赖。

我的数据示例

此列beginner_related_person_id 是新的,现在为空。

我必须使用 person_id 中的值更新这一行,但要使用根 person_id。

我已经开始编写查询,但需要提示。

我应该使用循环吗?或者是其他东西?

0 投票
0 回答
565 浏览

sql - 将递归查询从 Oracle Sql 移至 Redshift

我正在尝试将此递归查询从 Oracle Sql 移动到 Redshift。为此,我应该能够摆脱下面编写的代码中的“CONNECT BY”、“LEVEL”和“PRIOR”命令。我想在 WITH - UNION ALL 语句中移动递归模式,但我不确定如何管理“LEVEL”函数。有没有人能帮我重写这段代码,去掉“CONNECT BY”、“LEVEL”和“PRIOR”,但保留层次结构?非常感谢您提前。

0 投票
0 回答
48 浏览

sql-server - SQL Server:分层数据

我有多个表,表名分别为TableA(主键列:ID1)、TableB(主键列:ID2)、TableC(主键列:ID3)。

我有名为Hierarchy_Table的层次结构表。

我需要根据 Table_Name、PK_Column 和 Selected_ID 以及 Parent_Table、Parent_Column 和 Selected_Parent_ID 遍历上述 Hierarchy_Table 结果集的每一行,我需要从表 TableA、TableB 和 TableC 中获取所有列及其值。

我的 SQL 查询应该是什么样子?我想要的结果集应包含 Selected_ID、TableA_Name、TableA_Desc、TableB_Name、TableB_Desc、TableC_Name、TableC_Desc、Selected_Parent_ID、Parent_Name、Parent_Desc 列。

注意:TableA、TableB、TableC 列可以增长,因此我需要在新结果中从这些表中获取所有列和值。

我真的很感激一些帮助。提前谢谢。

0 投票
1 回答
72 浏览

sql - db2 中的分层查询问题

我有以下表格

带领

  • id varchar
  • employee_id varchar

员工

  • id varchar
  • Lead_id varchar

将有一组员工分配给一个领导。Lead 表包含潜在客户的员工 ID。员工表将具有lead_id,这将是领导者的id 键。

该表还将包含未分配给任何潜在客户的员工

我需要一个查询来显示分层结果,该结果将列出领导者和领导者下的员工

领导1(员工)

  • 员工1
  • 员工 2

领导2(员工)

  • 员工 3
  • 员工 4

知道如何通过 db2 查询获得这种分层结果吗?

点击此链接查看表结构

0 投票
2 回答
178 浏览

sql - 获取多个 ID 的两个日期之间的天数

这是如何使用查询获取 2 个给定日期之间的月份列表的后续问题? 真的。(我怀疑这是因为我不太了解按级别连接子句背后的逻辑!)

我所拥有的是这样的数据列表

我想尝试得到的是一个列表,其中包含每个 ID 的开始日期和结束日期之间的所有天数。

因此,例如,我想要一个给出的列表

等等

我试图做的是调整上述链接中的一个答案,如下所示

这给了我我想要的东西,但随后有一大堆重复的日期,就好像它就像一个笛卡尔连接。我需要添加一些简单的东西来解决这个问题吗?

0 投票
1 回答
50 浏览

sql - 使用 group by 识别根节点

我需要在其层次结构下仅设置一组标志来识别主通道(层次结构中最高的)。在以下情况下,US 不是有效的主要渠道,因为下面有两个标志。只有 US1、US2、UK 才是有效的主要频道。

如果可能的话,我想有一个单一查询的解决方案;否则我将探索程序选项。

我尝试了分层查询、分组依据、计数(标志)的一些变体,不知何故我无法消除“美国”并获得所需的结果。

如果有人可以为这个用例提供高级方法,我将不胜感激。

输入数据

使用输入数据的带有标志计数的多个层次结构

输出