Comments 6
Да, это удобная штука для всяких бухгалтерских «нарастающих итогов» - до ее появления приходилось имитировать все это CTE или джойнами с самим собой с открытыми условиями вида ..on a < b, что явно не являлось ни быстрым, ни прозрачным.
Мда... ни в первой части статьи, ни во второй так и не разобран вопрос, как изменяется интерпретация окна при отсутствии и при наличии в его определении предложения ORDER BY. Абсолютно критичный вопрос, следует заметить...
Также весьма критична разница между поведением ROWS и RANGE при наличии дубликатов по выражению сортировки - и об этом ни полслова.
Мда... Зачем такие умные люди как вы читают статью простого уровня для новичков, которые только знакомятся с определением оконных функций? Здесь не было цели вписать в статью всю теорию оконок, все тонкости их применения в зависимости от данных например с дублями. Информация для понимания смысла оконок в решении задач, синтаксические тонкости здесь не рассматриваются.
Для вас еще раз процитирую часть статьи:
"Сразу хочется отметить, что данная статья написана исключительно для людей, начинающих свой путь в изучении SQL и оконных функций. Здесь могут быть не разобраны сложные применения функций и могут не использоваться сложные формулировки определений - все написано максимально простым языком для базового понимания.
P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи)))
"
Про применение ORDER BY расписано в первой статье и подчеркивается, что его обязательно нужно использовать в функциях ранжирования и смещения. В более детальном виде на что это может влиять и еще про понятие "фрейма по умолчанию" расписывать не стал, но спасибо что обратили внимание - возможно дополню статью этой информацией
Зачем такие умные люди как вы читают статью простого уровня для новичков, которые только знакомятся с определением оконных функций?
А чтобы новичкам не наговорили всякого непотребного, а вот нужное дали всё, полно и правильно. Особенно когда речь идёт о совершенно критичных вещах - вот как об ORDER BY. Его наличие по факту вообще меняет логику кадрирования.
О! постепенно стали sqlру переписывать! Пора-пора!
Добрый день. На мой взгляд - нормальная статья. Для ответов на вопросы и раскрытие темы надо наверно продолжать.
добавлю от себя, хотя думаю многие знают, но на всякий, сумму нарастающим итогом можно сделать через order by, ниже в рамках года, но можно по индексу( или дате) по всем значениям
SELECT *,
SUM(net_profit) OVER(PARTITION BY date_year ORDER BY date_month) AS cum_sum
FROM financial_results
Оконные функции простым языком — Фреймы