仅使用oracle中最新的行“以开头/按前面的查询连接”

仅使用oracle中最新的行“以开头/按前面的查询连接”,oracle,hierarchical-query,Oracle,Hierarchical Query,我的分层查询如下所示: select ID, PARENT_ID, START_TIME FROM PROCESS START WITH ID='X' CONNECT BY ID=PRIOR PARENT_ID 我的问题是,有些行具有相同的ID“X”,我只希望返回最近的一行(当一个进程被复制时,它的ID是相同的-无法更改)。此外,我只希望它通过最近的行的先前父ID进行连接 从文档中可以看出,我无法在“连接方式”中进行查询以仅获取最新的前一个父id-我是否需要在代码中进行筛选,或者在查询中是否有

我的分层查询如下所示:

select ID, PARENT_ID, START_TIME
FROM PROCESS
START WITH ID='X'
CONNECT BY ID=PRIOR PARENT_ID
我的问题是,有些行具有相同的ID“X”,我只希望返回最近的一行(当一个进程被复制时,它的ID是相同的-无法更改)。此外,我只希望它通过最近的行的先前父ID进行连接

从文档中可以看出,我无法在“连接方式”中进行查询以仅获取最新的前一个父id-我是否需要在代码中进行筛选,或者在查询中是否有这样做的方法?

使用
行编号()
分析函数获取每个
id
的最新行:

SELECT ID,
       PARENT_ID,
       START_TIME
FROM   (
  SELECT p.*,
         ROW_NUMBER() OVER (
           PARTITION BY id
           ORDER BY start_time DESC
         ) AS rn
  FROM   process p
)
WHERE rn = 1
START WITH ID = 'X'
CONNECT BY ID = PRIOR PARENT_ID;

谢谢MT0。这更好,但它只获得最新流程的第一级。如果A是B的父级,B是C的父级,B是重复的,则会显示这些重复项。C的副本不是。似乎connect by ID=Previor PARENT_ID在存在行时总是匹配更多行?编辑您的问题并显示示例数据和预期结果。只有文本数据,没有图像请。