По мере прохождения углубленного курса моего курса SQL (посмотрите, что я там сделал, ха-ха) я узнаю об оконных функциях и их важности в наборе инструментов каждого аналитика.
Чтобы лучше понять эту тему, я решил написать об этом, стараясь максимально просто и лаконично. Кроме того, я недавно узнал, что присутствие в Интернете увеличивает шансы на трудоустройство. (привет, будущий рекрутер!)
Итак, приступим.
Что такое оконные функции?
Прежде чем мы сможем по-настоящему понять значение оконных функций, давайте сделаем шаг назад и сначала разберемся с агрегатными функциями.
Агрегирующие функции собирают данные из нескольких строк таблицы и объединяют их в одно значение. Оконные функции, с другой стороны, работают по-другому.
Оконные функции используют значения из одной или нескольких строк для возврата значения для каждой строки, в отличие от агрегатных функций.
Типы оконных функций
Существует два основных типа оконных функций:
- Агрегатные оконные функции
- Как следует из названия, оконные функции этого типа вычисляют агрегированные значения группы строк из таблицы.
- Примеры агрегатных оконных функций включают SUM, AVG, MIN, MAX.
2.Неагрегированные оконные функции
- Неагрегированные оконные функции — это тип оконных функций SQL, которые выполняют вычисления для набора строк, связанных с текущей строкой, без агрегирования строк в одно выходное значение.
- Примерами неагрегированных оконных функций являются RANK, LAG(), LEAD() и т. д.
Синтаксис оконной функции
Синтаксис оконной функции может различаться в зависимости от используемого варианта SQL, но их цель всегда одна и та же. Синтаксис, на который я буду ссылаться, — это версия MySQL. Давайте посмотрим на структуру оконной функции и разберем ее.
SELECT window_function_name OVER () AS table_alias FROM table_name;
- Целью оконной функции является добавление дополнительного столбца к результирующему запросу, поэтому она всегда используется с оператором SELECT.
- Вы должны указать тип оконной функции, которую вы используете в начале. Пример: РАНГ или ПЛОТНЫЙ РАНГ.
- Все оконные функции должны и будут иметь предложение OVER, благодаря которому SQL узнает, что вы имеете в виду оконную функцию. Если мы не используем предложение OVER, то это не оконная функция.
- AS используется для создания псевдонима столбца с помощью функции окна.
В следующей статье я буду более подробно писать об агрегированных и неагрегированных оконных функциях и вариантах их использования.