Перейти к основному содержанию
Перейти к основному содержанию

lead

Возвращает значение, вычисленное в строке, которая находится на offset строк ниже текущей строки в упорядоченном окне. Эта функция похожа на leadInFrame, но всегда использует окно ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING.

Синтаксис

lead(x[, offset[, default]])
  OVER ([[PARTITION BY grouping_column] [ORDER BY sorting_column]] | [window_name])
FROM table_name
WINDOW window_name as ([[PARTITION BY grouping_column] [ORDER BY sorting_column])

Для получения более подробной информации о синтаксисе оконных функций см. Window Functions - Syntax.

Параметры

  • x — имя столбца.
  • offset — смещение, которое нужно применить. (U)Int*. (Необязательный параметр — по умолчанию 1).
  • default — значение, которое возвращается, если вычисленная строка выходит за границы окна. (Необязательный параметр — при отсутствии используется значение по умолчанию для типа столбца).

Возвращаемое значение

  • значение, вычисленное в строке, которая находится на offset строк после текущей строки в пределах упорядоченного фрейма.

Пример

В этом примере рассматриваются исторические данные о лауреатах Нобелевской премии и используется функция lead для получения списка последующих лауреатов в категории «Физика».

CREATE OR REPLACE VIEW nobel_prize_laureates
AS SELECT *
FROM file('nobel_laureates_data.csv');
SELECT
    fullName,
    lead(year, 1, year) OVER (PARTITION BY category ORDER BY year ASC
      ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
    ) AS year,
    category,
    motivation
FROM nobel_prize_laureates
WHERE category = 'physics'
ORDER BY year DESC
LIMIT 9
   ┌─fullName─────────┬─year─┬─category─┬─motivation─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
1. │ Anne L Huillier  │ 2023 │ физика  │ за экспериментальные методы генерации аттосекундных световых импульсов для изучения динамики электронов в веществе                     │
2. │ Pierre Agostini  │ 2023 │ физика  │ за экспериментальные методы генерации аттосекундных световых импульсов для изучения динамики электронов в веществе                     │
3. │ Ferenc Krausz    │ 2023 │ физика  │ за экспериментальные методы генерации аттосекундных световых импульсов для изучения динамики электронов в веществе                     │
4. │ Alain Aspect     │ 2022 │ физика  │ за эксперименты с запутанными фотонами, установившие нарушение неравенств Белла и заложившие основы квантовой информатики │
5. │ Anton Zeilinger  │ 2022 │ физика  │ за эксперименты с запутанными фотонами, установившие нарушение неравенств Белла и заложившие основы квантовой информатики │
6. │ John Clauser     │ 2022 │ физика  │ за эксперименты с запутанными фотонами, установившие нарушение неравенств Белла и заложившие основы квантовой информатики │
7. │ Giorgio Parisi   │ 2021 │ физика  │ за открытие взаимосвязи беспорядка и флуктуаций в физических системах от атомных до планетарных масштабов                │
8. │ Klaus Hasselmann │ 2021 │ физика  │ за физическое моделирование климата Земли, количественную оценку его изменчивости и надёжное прогнозирование глобального потепления                        │
9. │ Syukuro Manabe   │ 2021 │ физика  │ за физическое моделирование климата Земли, количественную оценку его изменчивости и надёжное прогнозирование глобального потепления                        │
   └──────────────────┴──────┴──────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘