Oracle SQL: сумма (случай, когда количество иначе 0 END) OVER (разбиение по ...) = невозможно получить правильное утверждение GROUP BY - PullRequest
1 голос
/ 01 сентября 2011

Я пытаюсь выбрать несколько разных сумм, одна из которых OVER (Partition by column_also_in_select_plan).

Однако я, похоже, никогда не смогу сделать правильное утверждение GROUP BY.

Пример:

Select 1, 2, 3, sum(4) over (partition by 3), sum(case when 6 = etc...) 
FROM table
Where filters
GROUP BY ?

Спасибо за любые советы:)

1 Ответ

0 голосов
/ 01 сентября 2011

Нет особого смысла проводить агрегацию и одновременно с использованием оконных функций, поэтому я не удивлен, что вы запутались. В приведенном выше примере вы, вероятно, захотите переместить управление окнами во внешний запрос, а именно:

select 1, 2, 3, sum(sum4) over(partition by 3), ...
from (
      select 1, 2, 3, sum(4) as sum4
      from table
      where filters
      group by 1, 2, 3
) x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...