Функция окна SQL - SQL window function

в SQL база данных язык запросов, оконные функции разрешить доступ к данным в записях непосредственно перед и после текущей записи.[1][2][3][4] Оконная функция определяет Рамка или же окно строк с заданной длиной вокруг текущей строки и выполняет вычисление по набору данных в окне.[5][6]

      ИМЯ | ------------ Аарон | <- Предшествующий (неограниченный) Андрей | Амелия | Джеймс | Джилл | Джонни | <- 1-я предыдущая строка Майкл | <- Текущая строка Ник | <- 1-я строка Офелия | Зак | <- Следование (неограниченно)

В приведенной выше таблице следующий запрос извлекает для каждой строки значения окна с одной предыдущей и одной следующей строкой:

 ВЫБРАТЬ  LAG(имя, 1)     НАД(ПОРЯДОК К имя) "пред",  имя,   ВЕСТИ(имя, 1)     НАД(ПОРЯДОК К имя) "следующий" ИЗ люди ПОРЯДОК К имя

Результат запроса содержит следующие значения:

| PREV | ИМЯ | СЛЕДУЮЩИЙ || ---------- | ---------- | ---------- || (null) | Аарон | Андрей || Аарон | Андрей | Амелия || Андрей | Амелия | Джеймс || Амелия | Джеймс | Джилл || Джеймс | Джилл | Джонни || Джилл | Джонни | Майкл || Джонни | Майкл | Ник || Майкл | Ник | Офелия || Ник | Офелия | Зак || Офелия | Зак | (null) |

Рекомендации

  1. ^ Лейс, Виктор; Кундхиканджана, Кан; Кемпер, Альфонс; Нойман, Томас (июнь 2015). «Эффективная обработка оконных функций в аналитических SQL-запросах». Proc. VLDB Endow. 8 (10): 1058–1069. Дои:10.14778/2794367.2794375. ISSN  2150-8097.
  2. ^ Цао, Ю; Чан, Чи-Ён; Ли, Цзе; Тан, Киан-Ли (июль 2012 г.). «Оптимизация аналитических оконных функций». Proc. VLDB Endow. 5 (11): 1244–1255. arXiv:1208.0086. Дои:10.14778/2350229.2350243. ISSN  2150-8097.
  3. ^ «Наверное, самая крутая функция SQL: оконные функции». Java, SQL и jOOQ. 2013-11-03. Получено 2017-09-26.
  4. ^ "Оконные функции в SQL - простой разговор". Простой разговор. 2013-10-31. Получено 2017-09-26.
  5. ^ «Введение в оконные функции SQL». Apache Drill.
  6. ^ «PostgreSQL: Документация: оконные функции». www.postgresql.org. Получено 2020-04-04.