Поиск максимальной суммы в дереве 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);

Содержание таблицы CORP Содержание таблицы CORP


Ответы (0 шт):