Поиск максимальной суммы в дереве Oracle SQL
Необходимо пройтись по таблице иерархическим запросом подчитав сумму у дочерних элементов (CRP_WORTH) + значение корневого(CRP_WORTH) и вывести корневой элемент у которого наибольшая сумма.
Я понял как проходиться по всему дереву:
SELECT * FROM CORP START WITH CRP_PID IS NULL CONNECT BY PRIOR CRP_ID = CRP_PID;
И как посмотреть элементы у конкретного корня (тут для примера у корня с 1):
SELECT * FROM CORP START WITH CRP_PID = 1 CONNECT BY PRIOR CRP_ID = CRP_PID;
Теперь я думаю, мне нужно изменяя START WITH CRP_PID = K , где K = индекс корня, получить дочерние элементы каждого корня и суммировать их, а потом среди них найти максимальный.
Предполагаю, что это делается через подзапросы, но не могу сообразить как мне взять сумму из подзапроса и потом от нее взять максимальное значение, а потом вывести строку с корневым элементом у которого сумма максимальная.
SELECT a.* FROM CORP a WHERE 10000 > ANY (SELECT SUM(CRP_WORTH) FROM CORP b START WITH b.CRP_PID = a.CRP_ID CONNECT BY PRIOR b.CRP_ID = b.CRP_PID);
