Функция SQL Server Last_Value()

Funkcia Sql Server Last Value



Цель этого руководства — помочь вам понять функцию last_value() в SQL Server. Функция позволяет получить последнее значение в упорядоченном наборе значений или разделе.

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

Ниже приведен синтаксис функции last_value.

LAST_VALUE ( [ скалярное_выражение ] )  [ ИГНОРИРОВАТЬ НУЛИ | УВАЖАЙТЕ НУЛИ]
OVER ([partition_by_clause] order_by_clause [rows_range_clause])

Аргументы функции:







  1. scalar_expression — определяет возвращаемое значение. Это может быть существующий столбец, подзапрос или выражение, возвращающее одно значение.
  2. IGNORE NULLS — это позволяет функции игнорировать нулевые значения в заданном наборе при определении последнего значения в разделе.
  3. RESPECT NULL — противоположность IGNORE NULL. Это заставляет функцию учитывать значения NULL при определении последнего значения в разделе.
  4. PARTITION BY – разделяет строки данного результата на различные разделы. Затем к этим разделам применяется функция last_value. Если предложение partition_by отсутствует, функция будет рассматривать результирующий набор как одну группу.
  5. ORDER BY — это определяет, в каком порядке следуют строки в данном разделе.
  6. Rows_range — это предложение ограничивает количество строк в данном разделе. Это работает путем установки начального и конечного значения.

Функция возвращает тип указанного scalar_expression.



Использование функции last_value для набора результатов

Предположим, у нас есть таблица, как показано на рисунке:







Мы можем применить функцию last_value() к набору результатов, как показано в примере запроса ниже:

Выбрать
ИМЯ СЕРВЕРА,
АДРЕС СЕРВЕРА ,
COMPRESSION_METHOD,
РАЗМЕР НА ДИСКЕ,
last_value(size_on_disk) больше(
порядок по диапазону size_on_disk между неограниченным предшествующим и неограниченным последующим) самым большим
из
ЗАПИСИ Е;

Результирующие значения:



Использование функции last_value над разделом

Мы также можем применить функцию last_value() к разделу, как показано в примере ниже:

Выбрать
ИМЯ СЕРВЕРА,
АДРЕС СЕРВЕРА ,
COMPRESSION_METHOD,
РАЗМЕР НА ДИСКЕ,
last_value(size_on_disk) over(partition by COMPRESSION_METHOD
порядок по диапазону size_on_disk между неограниченным предшествующим и неограниченным последующим) самым большим
из
ЗАПИСИ Е;

В этом случае данные группируются в различные разделы на основе метода сжатия.

Полученное значение выглядит следующим образом:

В приведенной выше таблице у нас есть пять разделов, причем максимальное значение в каждом разделе отображается в самом большом столбце.

Вывод

В этом руководстве вы узнали, как использовать функцию SQL Server last_value() для получения последнего значения в упорядоченном наборе или разделе.