Полный гайд по оконным функциям

В инете очень много шпаргалок, задач, но когда я учился только не было понимания с чего начать и как все это работает с нормальными картинками и объяснениями.

Решил выпустить очередной гайд, в котором описано практически все, что можно узнать про оконные функции: оптимизация, сортировка, партиции, RANGE, ROWS и так далее.

Кстати, интересный вопрос: Что отработает в примерах ниже быстрее? Оконка или JOIN? В каких условиях один вариант начнет сильно проигрывать другому?

🐸 Пример с оконкой SELECT user_id, date, revenue, revenue / SUM(revenue) OVER (PARTITION BY date) AS share FROM orders

🐸 Пример с агрегацией WITH daily AS ( SELECT date, SUM(revenue) AS total_rev FROM orders GROUP BY date ) SELECT o.user_id, o.date, o.revenue, o.revenue / d.total_rev AS share FROM orders o JOIN daily d USING (date)

🔗 Ссылочку дублирую еще и тут на гайд: ССЫЛКА 🔥 Свой ответ пишите в комментариях, будет интересно почитать ваши мысли! Поставьте реакции, если хотите разбор ответа.

@zasql_python