TGViewer
Python | Вопросы собесов Python | Вопросы собесов @python_easy_ru · 12.7K subscribers
Post #2718 1.13K
🤔 Что такое оконные функции?

Оконные функции (window functions) — это специальные функции в SQL, которые выполняют вычисления по строкам внутри "окна" (группы строк), но не агрегируют их.
SELECT 
id,
месяц,
продавец,
сумма,
SUM(сумма) OVER (PARTITION BY месяц) AS общий_доход_в_месяц
FROM sales;


🟠`ROW_NUMBER()` – Нумерация строк
Пронумеруем продажи каждого продавца в порядке убывания суммы.
SELECT 
id,
продавец,
сумма,
ROW_NUMBER() OVER (PARTITION BY продавец ORDER BY сумма DESC) AS номер
FROM sales;


🟠`RANK()` и `DENSE_RANK()` – Рейтинг с учётом одинаковых значений
Если два продавца получили одинаковую сумму, RANK() пропустит следующий номер, а DENSE_RANK() – нет.
SELECT 
продавец,
сумма,
RANK() OVER (ORDER BY сумма DESC) AS ранг_1,
DENSE_RANK() OVER (ORDER BY сумма DESC) AS ранг_2
FROM sales;


🟠3. `LAG()` и `LEAD()` – Доступ к предыдущей и следующей строке
LAG() даёт предыдущее значение, LEAD() – следующее.
SELECT 
месяц,
продавец,
сумма,
LAG(сумма) OVER (PARTITION BY продавец ORDER BY месяц) AS предыдущий_месяц,
LEAD(сумма) OVER (PARTITION BY продавец ORDER BY месяц) AS следующий_месяц
FROM sales;


🟠Использование оконных функций с `FRAME` (ограничение окна)
Иногда нужно анализировать не всю группу, а только несколько соседних строк.
SELECT 
месяц,
продавец,
сумма,
AVG(сумма) OVER (PARTITION BY продавец ORDER BY месяц ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS скользящее_среднее
FROM sales;


Ставь 👍 и забирай 📚 Базу знаний
  • 🔥 1
More from @python_easy_ru
  1. Oct 10, 2026🤔 Что такое клиент-серверная архитектура? Клиент-серверная архитектура – это модель взаим…
  2. Oct 9, 2026Post #2801
  3. Oct 9, 2026🤔 Как работают операторы global и nonlocal? Global позволяет объявить, что переменная в ф…
  4. Oct 9, 2026🤔 Как в Python происходит поиск переменной по области видимости? В Python поиск переменно…
  5. Oct 8, 2026🤔 Как устроен словарь? Словарь (dict) реализован как хеш-таблица. Ключи хешируются с помо…
  6. Oct 8, 2026🤔 В чем отличия pytz от datetime? 🟠`datetime` – встроенный модуль Python Модуль datetime…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →