SQL-фишечка: Псевдоним для окна (WINDOW)
Если в запросе больше одной оконной функции и у всех одинаковые PARTITION BY и ORDER BY — не нужно копировать одни и те же скобки в каждую строку.
Как обычно делают: SELECT user_id, SUM(amount) OVER (PARTITION BY user_id ORDER BY created_at) as total, AVG(amount) OVER (PARTITION BY user_id ORDER BY created_at) as average, COUNT() OVER (PARTITION BY user_id ORDER BY created_at) as cnt FROM sales Как можно сделать: SELECT user_id, SUM(amount) OVER w as total, AVG(amount) OVER w as average, COUNT() OVER w as cnt FROM sales WINDOW w AS (PARTITION BY user_id ORDER BY created_at) Суть: после FROM пишем WINDOW w AS и в скобках один раз указываем логику окна.
В чем профит: — Чистота: Код читается в разы легче, нет визуального шума. — Масштабируемость: Нужно изменить логику сортировки или партиции — правим в одном месте, и всё обновляется сразу.
Это одна из тех мелочей, которая отличает просто «работающий» код от поддерживаемой системы.
Связи: 📌 Еще фишка DISTINCT ON: Как выбирать нужное, не нумеруя лишнего
В этом посте были ссылки, но мы их удалили по правилам Сетки