По мере прохождения углубленного курса моего курса SQL (посмотрите, что я там сделал, ха-ха) я узнаю об оконных функциях и их важности в наборе инструментов каждого аналитика.

Чтобы лучше понять эту тему, я решил написать об этом, стараясь максимально просто и лаконично. Кроме того, я недавно узнал, что присутствие в Интернете увеличивает шансы на трудоустройство. (привет, будущий рекрутер!)

Итак, приступим.

Что такое оконные функции?

Прежде чем мы сможем по-настоящему понять значение оконных функций, давайте сделаем шаг назад и сначала разберемся с агрегатными функциями.

Агрегирующие функции собирают данные из нескольких строк таблицы и объединяют их в одно значение. Оконные функции, с другой стороны, работают по-другому.

Оконные функции используют значения из одной или нескольких строк для возврата значения для каждой строки, в отличие от агрегатных функций.

Типы оконных функций

Существует два основных типа оконных функций:

  1. Агрегатные оконные функции
  • Как следует из названия, оконные функции этого типа вычисляют агрегированные значения группы строк из таблицы.
  • Примеры агрегатных оконных функций включают SUM, AVG, MIN, MAX.

2.Неагрегированные оконные функции

  • Неагрегированные оконные функции — это тип оконных функций SQL, которые выполняют вычисления для набора строк, связанных с текущей строкой, без агрегирования строк в одно выходное значение.
  • Примерами неагрегированных оконных функций являются RANK, LAG(), LEAD() и т. д.

Синтаксис оконной функции

Синтаксис оконной функции может различаться в зависимости от используемого варианта SQL, но их цель всегда одна и та же. Синтаксис, на который я буду ссылаться, — это версия MySQL. Давайте посмотрим на структуру оконной функции и разберем ее.

SELECT
  window_function_name OVER () AS table_alias
FROM
  table_name;
  1. Целью оконной функции является добавление дополнительного столбца к результирующему запросу, поэтому она всегда используется с оператором SELECT.
  2. Вы должны указать тип оконной функции, которую вы используете в начале. Пример: РАНГ или ПЛОТНЫЙ РАНГ.
  3. Все оконные функции должны и будут иметь предложение OVER, благодаря которому SQL узнает, что вы имеете в виду оконную функцию. Если мы не используем предложение OVER, то это не оконная функция.
  4. AS используется для создания псевдонима столбца с помощью функции окна.

В следующей статье я буду более подробно писать об агрегированных и неагрегированных оконных функциях и вариантах их использования.