【发布时间】:2014-04-10 21:54:21
【问题描述】:
我已经断断续续地解决这个问题几天了,但我一无所获。
我有一个类似这样的数据集:
NAME EXPIRATION PARENT_ID CLASS_ID
Master Class 365 1
Second Class 366 1 2
Third Class 355 2 3
Fourth Class 1001 2 4
Fifth Class 1000 4 5
Sixth Class 999 4 6
等。等等。
我可以使用分层查询来查看某个类下需要哪些类。
我真正想知道的是层次结构的当前级别和子级别的最短到期日期是多少。过期是它下的任何东西的最短过期时间。
如果我想以蛮力的方式执行此操作,我可以取回分层查询的结果,然后为每一行运行一个如下所示的查询:
select min(expiration_date)
from ( start with class_id = $EACH_CLASS_ID_FROM_PREVIOUS_QUERY
connect by prior parent_id = class_id);
我正在描绘这样的结果:
NAME EXPIRATION CLASS_ID
Master Class 355 (Min of it or anything under it) 1
Second Class 355 "" 2
Third Class 355 "" 3
Fourth Class 999 "" 4
Fifth Class 1000 "" 5
Sixth Class 999 "" 6
我假设有更好的方法吗?也许?
感谢您的帮助,这几天我一直在困惑。
【问题讨论】:
标签: sql oracle hierarchy hierarchical-data