Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: window function, analytics, ranking

Как работают оконные функции (window functions) в SQL?

Этот вопрос проверяет понимание расширенных возможностей SQL для анализа данных без группировки строк.

Короткий ответ

Оконные функции выполняют вычисления над набором строк, связанных с текущей строкой (окном). Они не группируют данные в одну строку, а сохраняют все строки. Примеры: ROW_NUMBER(), RANK(), SUM() OVER().

Длинный ответ

Что такое окно:

  • Это набор строк, связанных с текущей записью (например, все строки раздела или диапазона).

  • Определяется через OVER() с указанием:

    • PARTITION BY (аналог GROUP BY для окна),

    • ORDER BY (порядок внутри окна),

    • ROWS/RANGE (физические/логические границы).

Примеры функций:

  1. Ранжирование:

    SELECT name, salary,
           ROW_NUMBER() OVER (ORDER BY salary DESC) AS rank
    FROM employees;
    • Присваивает уникальный номер строкам по убыванию зарплаты.

  2. Агрегация без свёртки:

    SELECT department, employee, salary,
           AVG(salary) OVER (PARTITION BY department) AS avg_department_salary
    FROM employees;
    • Для каждого сотрудника показывает среднюю зарплату по его отделу.

  3. Доступ к смежным строкам:

    SELECT date, revenue,
           LAG(revenue) OVER (ORDER BY date) AS prev_day_revenue
    FROM sales;
    • Сравнивает выручку с предыдущим днём.

Преимущества:

  • Упрощают сложные отчёты (например, скользящие средние).

  • Избегают многоуровневых подзапросов.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Postgres

    Postgres

Ключевые слова

#window function

#analytics

#ranking

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.