Обложка канала

LEFT JOIN

5709 @leftjoin

Канал Николая Валиотти об аналитике и визуализации данных, data science и BI

LEFT JOIN

4 года назад
Открыть в
Ограничение оконных функций ROWS: Часть 1 Сегодня обсудим еще один важный параметр оконной функции: ROWS. Разбираемся подробнее Параметр ROWS позволяет ограничить строки в окне, указывая фиксированное количество строк, предшествующих или следующих за текущей. В выражении для ограничения строк ROWS также можно использовать следующие ключевые слова: ▪️ UNBOUNDED PRECEDING — указывает, что окно начинается с первой строки группы. ▪️ UNBOUNDED FOLLOWING – с помощью данной инструкции можно указать, что окно заканчивается на последней строке группы. ▪️ CURRENT ROW – инструкция указывает, что окно начинается или заканчивается на текущей строке. ▪️ BETWEEN «граница окна» AND «граница окна» — указывает нижнюю и верхнюю границу окна. ▪️ «Значение» PRECEDING – определяет число строк перед текущей строкой. ▪️ «Значение» FOLLOWING — определяет число строк после текущей строки. Давайте разберем на примерах, как можно использовать перечисленные ключевые слова и как именно работают оконные функции. Вернемся к ранее использованной таблице animals. ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING Для начала попробуем определить средний возраст двух питомцев (текущего и следующего) одного вида, отсортированных по возрастанию веса. Для этого, как вы, наверное, уже догадались, мы будем использовать ключевые слова BETWEEN, CURRENT ROW и FOLLOWING.
SELECT kind,
       name,
       weight,
       age,
       AVG(age) OVER (PARTITION BY kind ORDER BY weight
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING)
FROM animals
#leftjoin_sql