Table querying on:
COL1 COL2 COL3
ABC1 ORG1 1.5
ABC1 ORG2 4.5
ABC1 ORG1 2.0
ABC1 ORG2 3.0
ABC1 ORG3 1.0
ABC1 ORG3 5.5
ABC1 ORG3 2.5
ABC1 ORG4 40.0
ABC2 ORG1 1.5
ABC2 ORG2 5.0
ABC2 ORG1 2.0
ABC2 ORG2 25.0
ABC2 ORG3 1.0
ABC2 ORG3 5.5
ABC2 ORG3 2.5
ABC2 ORG4 20.0
ABC3 ORG1 15.5
ABC3 ORG2 4.5
ABC3 ORG1 5.0
ABC3 ORG2 3.0
ABC3 ORG3 1.0
ABC3 ORG3 5.5
ABC3 ORG3 2.5
ABC3 ORG4 10.0
Output:
COL1 COL2 COL3
ABC1 ORG4 40.0
ABC2 ORG2 30.0
ABC3 ORG1 20.5
Мне нужен вывод, который сначала вычисляет сумму столбца 3 и выбирает максимум для столбца 2, но также имеет результат col1, как показано в выводе.Я пробовал работать с окнами, но, похоже, очень медленно, потому что я запускаю его для миллиона записей, и мне было интересно, как его оптимизировать или как использовать его с функцией rownumber:
select * from
(select col1, col2
, sum(col3) as Tot
, max(sum(col3)) over (partition by col1) as MSum
from table1
group by col1, col2)
a
where a.tot = a.Msum