Веб-версияОткрыть в Telegram

ПостУчимся создавать «окна» в SQL

16 января 2026
T
This is Data
Фотография
нажмите — покажем
Учимся создавать «окна» в SQL В прошлом посте мы узнали, зачем нужны оконные функции. Теперь научимся их объявлять. Все начинается с инструкции OVER() - она и определяет наше «окно». Ключевые команды внутри OVER(): ▪️PARTITION BY - разделяет данные на группы (партиции). Как GROUP BY, но без «схлопывания» строк. Считает функцию внутри каждой группы отдельно. ▪️ORDER BY - сортирует строки внутри окна. Критично для функций нарастающего итога, ранжирования и смещения (LAG/LEAD). Разберем на примере простой таблички, содержащей дату, канал с которого пришел пользователь и количество конверсий: SELECT date AS dt , medium AS med , conversions AS conv , SUM(conversions) OVER(PARTITION BY date ORDER BY medium) AS sum FROM orders Что произойдет? ▪PARTITION BY Date создаст отдельное «окно» для каждой даты. Сумма будет считаться только в рамках одного дня. ▪ORDER BY medium отсортирует каналы внутри каждой даты. ▪SUM(conversions) в паре с ORDER BY рассчитает нарастающий итог конверсий внутри каждого дня. Для первой строки в окне (дне) sum будет равен ее conversions, для второй - сумме первой и второй, и так далее. ⚠️ Важно: ROWS / RANGE управляют диапазоном строк, по которым считается оконная функция. И даже если ничего не указывать, то по умолчанию используется RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. В результате выполнения запроса мы получим примерно такую табличку: dt med conv sum 10.05.20 cpa 1 1 10.05.20 cpc 2 3 10.05.20 organic 1 4 11.05.20 cpa 1 1 11.05.20 cpc 3 4 11.05.20 direct 1 5 11.05.20 organic 2 7 12.05.20 cpc 1 1 12.05.20 organic 2 3 Основы разобрали! Далее я расскажу как сужать фокус окна до «скользящего» диапазона с помощью ROWS BETWEEN. #харды #sql
36 · 2.9K ·

Рядом в ленте

TThis is DataВозвращаемся в строй Отдых вышел что надо - долгий и ленивый 🦥 Я провел его дома под пледом, с Гарри Поттером на экране и «Ведьмаком» в консоли. Пару раз выгоняTThis is DataПочему оконные функции - это суперсила аналитика? Знакомы с проблемой? Вам нужно посчитать долю каждой продажи в общей выручке за месяц, сравнить сегодняшний по
это сообщение
TThis is DataСегодня поговорим про экосистемные метрики. Или, если слово «экосистема» кажется слишком громким - про мультипродуктовые, сквозные пользовательские метрики. В РTThis is DataЕсли вы искали исчерпывающий курс по управлению данными, то он здесь, в одной книге на 800 страниц. Но приготовьтесь - это вам не «Котики». 📚 DAMA-DMBOK: Свод з
TThis is DataThis is Data@thisisdata · канал · Технологии
6 197подписчиков1 150средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем