RowNum не поможет здесь, как rownums рассчитываются перед заказом, и вы хотите, большой стол.
with q as (
Select segment_name as table_name,
sum(bytes) as table_size
from user_segments
group by segment_name
) select hlp.table_name, hlp.table_size
from (Select q.*, dense_rank() over(order by q.table_size desc) as rn from q) hlp
where hlp.rn = 1;
Это сделает трюк. Предложение WITH - это выражение общей таблицы (CTE), действительное в контексте следующего выбора под псевдонимом «q». Я хотел избежать нескольких вызовов, чтобы суммировать.
Функция dense_rank() внутри подзапроса в выводах from from, следующих за значениями раздела или порядка, который в нашем случае является уменьшающимся размером таблицы.
Подзапрос необходим для выбора первой строки.
Что касается использования таблиц словаря данных, я не проверял результат.