DevGang
Авторизоваться

Функция FIRST_VALUE в SQL Server

Функция FIRST_VALUE() в SQL Server извлекает первое значение из указанного столбца. Она работает вместе с предложением ORDER BY для определения последовательности и, если нужно или необходимо, предложением PARTITION BY для создания разделов данных перед получением первого значения. Эта функция полезна для получения крайнего значения на основе заданного порядка в наборе данных.

  • Функция была введена в SQL Server2012
  • Получает начальное значение из указанного столбца
  • Предложение ORDER BY является обязательным
  • Может быть использовано предложение PARTITION BY

Синтаксис: FIRST_VALUE (Имя_колонки) OVER (Порядок по COLUMN1, COLUMN2, COLUMN3...).

Мы будем использовать таблицу, приведенную ниже. Предоставленный код доступен на то случай, если вы хотите поэкспериментировать с ним.


CREATE TABLE Employees(
ID INT ,
NAME VARCHAR(50),
GENDER VARCHAR(10),
SALARY INT)

INSERT INTO Employees VALUES(
1, 'Joe', 'Male', 10000
),
(
2, 'Ryan', 'Male', 20000
),
(
3, 'Hannah', 'Female', 30000
),(
4, 'Joy', 'Female', 40000
),
(
5, 'Rash', 'Male', 50000
),
(
6, 'Halima', 'Female', 60000
),
(
7, 'Chris', 'Male', 70000
),
(
8, 'Judith', 'Female', 80000
) 

Функция First_Value без PARTITION BY

SELECT Name, Gender, Salary,
FIRST_VALUE(Name) over(order by salary) as FirstValue
from Employees

Функция FIRST_VALUE в SQL Server работает, если указать столбец, из которого вы хотите получить начальное значение. Она требует использования ключевого слова OVER вместе с предложением ORDER BY для упорядочивания набора результатов. Например, мы применили эту функцию к столбцу с именем "name и упорядочили его соответствующим образом, выбрав "JOE" в качестве первого значения, функция вернет "JOE" для всех строк, эффективно заполнив весь набор результатов этим конкретным начальным значением из столбца "name". Вот ожидаемый набор результатов.

Функция First_Value с PARTITION BY

SELECT Name, Gender, Salary,
FIRST_VALUE(Name) over(Partition by Gender order by salary) as FirstValue
from Employees

Функция FIRST_VALUE в SQL Server обладает гибкостью, позволяющей при необходимости включать предложение PARTITION BY. Как и в предыдущем примере, она извлекает начальное значение из указанного столбца. Однако при использовании PARTITION BY функция разделяет набор результатов на основе указанной категории, как в случае с разделением по "GENDER", создавая отдельные разделы для анализа или извлечения начальных значений в каждом отдельном разделе. Вот ожидаемый результат.

Счастливого вам обучения!

Источник:

#SQL
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу