Oracle-11g
Oracle分層查詢:如何在每個級別上遵循最大值
我正在嘗試獲取查詢以“跟踪”每個級別中的最大值,不包括其他分支中的最大值。
這裡有一些例子來說明我想要實現的目標:
鑑於這種層次結構:
38 15 10 5 2 3 17 9 8 6 26 13 1 12 18 11 7
我想得到:
38 17 9
並不是:
38 17 10 3
就像我現在使用我想出的 sql 查詢一樣:
select lpad(' ',2*(level-1))|| max(child) from test_connect_by start with parent is null connect by prior child = parent group by level
這會從每個級別獲得絕對最大值,而不會在級別上的每次迭代中排除其他分支。
範例數據來自http://www.adp-gmbh.ch/ora/sql/connect_by.html
提前感謝任何提示
Vlax
這似乎解決了所提出的問題。不確定是否有沒有先聚合的解決方案:
select lpad(' ',2*(level-1)) || child as result from ( select parent, max(child) as child from test_connect_by group by parent ) t start with parent is null connect by prior child = parent order by level ;