Это может звучать глупо, но у меня возникают проблемы с моим SQL кодом для Group By в Netezza, который я не могу понять. По сути, я делаю простую сумму и пытаюсь сгруппировать результаты, где я сталкиваюсь с проблемами. Текущая таблица выглядит следующим образом:
id date daily_count
---------------------------
1 4/1/20 2
1 4/2/20 1
2 4/1/20 3
2 4/1/20 2
2 4/3/20 1
Я хочу, чтобы она выглядела следующим образом:
id date daily_count
---------------------------
1 4/1/20 2
1 4/2/20 1
2 4/1/20 5
2 4/3/20 1
Мой оператор выбора:
select id, date, sum(count) over (partition by date, id) as daily_count
Если я это сделаю group by
предложение, включая поле суммы (group by id, date, daily_count
), я получаю предупреждение:
Оконные агрегаты не разрешены в предложении GROUP BY
Но если я исключу сумму поле в group by
предложении (group by id, date
), затем я получаю предупреждение, говоря:
Атрибут count
должен быть сгруппирован или использоваться в статистической функции
count
- это переменная, которую я суммирую, поэтому, если я сгруппирую ее, она не даст правильную сумму суммы.
Означает ли это, что группировка должна происходить вне этого запроса, то есть cte или подзапрос? Я надеюсь получить несколько советов, чтобы знать, что именно происходит и как лучше поступить.