Ответ
Что хотят услышать интервьюеры
Интервьюеры ожидают, что кандидат сможет четко определить, что такое оконные функции в SQL, объяснить их назначение и преимущества по сравнению с обычными агрегатными функциями. Также они хотят услышать примеры использования оконных функций для решения конкретных задач, таких как вычисление скользящих средних, ранжирование строк и т.д.
Определение
Оконные функции — это функции в SQL, которые позволяют выполнять вычисления по набору строк, связанных с текущей строкой, без необходимости группировки результатов. Они используются для выполнения аналитических расчетов, таких как ранжирование, суммирование и вычисление скользящих средних.
Примеры использования
Ранжирование строк: Можно использовать оконную функцию
RANK()для присвоения ранга строкам на основе определенного критерия. Например, чтобы ранжировать сотрудников по зарплате в компании:SELECT employee_id, salary, RANK() OVER (ORDER BY salary DESC) AS rank FROM employees;Скользящее среднее: Вычисление скользящего среднего по продажам за последние 3 месяца:
SELECT sale_date, amount, AVG(amount) OVER (ORDER BY sale_date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg FROM sales;Суммирование по категориям: Сумма всех продаж для каждой категории товаров, не сгруппировывая результаты:
SELECT category, sale_amount, SUM(sale_amount) OVER (PARTITION BY category) AS total_category_sales FROM sales;
Преимущества
- Позволяют выполнять сложные аналитические запросы без необходимости подзапросов или временных таблиц.
- Поддерживают более читабельный и эффективный код.
Что могут спросить дальше
- Объяснить алгоритм работы оконных функций.
- Показать дополнительные примеры использования.
- Сравнить оконные функции с обычными агрегатами.
- Обсудить производительность оконных функций в больших наборах данных.