TGViewer
DATA SUETIST DATA SUETIST @data_suetistka · 984 subscribers
Post #96 1.98K
3. Frame Clause — определяет границы окна относительно текущей строки
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING

Отличие от GROUP BY

Представьте, что у вас есть таблица с сотрудниками: имя, отдел и зарплата.

GROUP BY — это когда вы говорите: "Сгруппируй всех сотрудников по отделам и покажи мне только общую информацию по каждому отделу — среднюю зарплату, сумму зарплат и количество человек". В результате вы получите компактную табличку: одна строка на отдел с итогами. Все детали о каждом конкретном сотруднике исчезнут. Вы видите только общую картину, как будто смотрите на отчет свысока.

Оконные функции — это совершенно другой подход. Вы говорите: "Я хочу увидеть ВСЕХ сотрудников списком, но в дополнение к их имени и зарплате, посчитай и покажи рядом в отдельном столбце среднюю зарплату по их отделу". В результате вы получаете полный список всех сотрудников, и у каждого в строке есть его личные данные плюс новый столбец с аналитикой. Вы не теряете ни одной детали, но при этом получаете сводную информацию.

GROUP BY уменьшает количество строк в результате, оставляя только группы. Оконные функции сохраняют все строки, но добавляют к ним новые вычисляемые поля.

Функции агрегации оконных выражений

1. Агрегирующие функции

Выполняют стандартные агрегатные операции, но в рамках окна.

· SUM() - Сумма значений.
· AVG() - Среднее арифметическое.
· COUNT() - Количество строк.
· MIN() - Минимальное значение.
· MAX() - Максимальное значение.

2. Функции ранжирования

Присваивают порядковый номер или ранг строке в рамках её раздела.

· ROW_NUMBER() - Присваивает уникальный номер каждой строке.
· RANK() - Присваивает ранг с пропусками (при одинаковых значениях ранг совпадает, а следующий пропускается).
· DENSE_RANK() - Присваивает ранг без пропусков.
· NTILE(n) - Разбивает строки на n примерно равных групп (бакетов).

3. Функции смещения (доступа к соседним строкам)

Позволяют обращаться к данным из других строк в том же окне.

· LAG(column, offset) - Возвращает значение из строки, находящейся на offset строк назад.
· LEAD(column, offset) - Возвращает значение из строки, находящейся на offset строк вперёд.
· FIRST_VALUE(column) - Возвращает первое значение в окне.
· LAST_VALUE(column) - Возвращает последнее значение в окне.

4. Аналитические функции

Выполняют статистический анализ.

· CUME_DIST() - Вычисляет cumulative distribution (относительное положение) значения.
· PERCENT_RANK() - Вычисляет относительный ранг строки в рамках окна.

❤️ Что такое CTE?

CTE (Common Table Expression) — это временный именованный результат запроса, который существует только в течение выполнения основного запроса.

Основные характеристики CTE:

· Временность: Результат CTE не сохраняется в базе данных и доступен только для одного последующего оператора SELECT, INSERT, UPDATE, DELETE или MERGE.
· Улучшение читаемости: Позволяет разбивать сложные запросы на более простые и понятные логические блоки.
· Рекурсия: Поддерживает рекурсивные запросы (с помощью WITH RECURSIVE), что полезно для работы с иерархическими данными (например, деревьями).
· Синтаксис: Определяется с помощью ключевого слова WITH.

Простая структура:
WITH название_cte AS (
-- Здесь ваш подзапрос
SELECT ...
)
-- Основной запрос, использующий CTE
SELECT * FROM название_cte;

Скажите, нужен ли такой пост про PySpark или Python?

#найм_IT #развитие
  • ❤ 18
  • 👨‍💻 8
  • ❤‍🔥 5
More from @data_suetistka
  1. Sep 18, 2026Как вы переживаете то, что вы не самый лучший во всем? В эпоху соцсетей у нас появилось не…
  2. Sep 17, 2026⚡ Почему аналитики данных так востребованы и как стать аналитиком в 2026 году? Большинство…
  3. Sep 13, 2026Прошла первая учебная неделя... Поделюсь с вами своими впечатлениями о начавшейся учебе. С…
  4. Sep 5, 2026Доброй субботы, подписчики! Сегодня пытаюсь выбрать себе вузовское расписание на семестр.…
  5. Sep 3, 2026Какой навык нужен для международной карьеры? Я часто вижу одну и ту же ситуацию, когда чел…
  6. Sep 1, 2026Проходила сейчас входной тест по английскому языку для магистрантов ИТМО. Хоть немного отм…
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 →