@Korifa

Агрегирование в контексте группы и оконной функции?

Как отработает этот запрос?
внутренний sum посчитает сумму в рамках групп бай, если ins_date равна cur_date, а потом внешний sum суммирует полученный результат в контексте секций?
select      cur_date,
		field_1,
		field_2,
		field_3,
		field_4,
        sum(sum(case when ins_date = cur_date then val else 0 end))
        over(partition by 
						  field_2,
						  field_3,
						  field_4 ) -- group by within company if field_1 -company
   from  table_1
 where  ins_date between add_months(cur_date, -2) and cur_date
 group  by 
		field_1,
		field_2,
		field_3,
		field_4,
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Как отработает этот запрос?
внутренний sum посчитает сумму в рамках групп бай, если ins_date равна cur_date, а потом внешний sum суммирует полученный результат в контексте секций?

Именно так и будет. Считай, что оконные функции работают после HAVING и перед ORDER BY.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы