Database/SQL Server

SQL Server - 첫 번째 값 & 마지막 값 함수 FIRST_VALUE & LAST_VALUE function

청렴결백한 만능 재주꾼 2020. 12. 18. 03:30
반응형

FIRST_VALUE function

 - 2012년에 소개된 함수이다.

 - 지정한 함수의 첫번째 값을 가져온다.

 - ORDER BY clause is required

 - PARTITION BY clause is optional

 

Syntax:

FIRST_VALUE(Column_Name) OVER (ORDER BY Col1, Col2, ...)

 

Example:

SELECT Name, Gender, Salary,
FIRST_VALUE(Name) OVER (ORDER BY Salary) AS FirstValue
FROM Employees

 

첫 번째 값 'Mark'만 쫘악 나열 되어 있는 모습

 

파티션을 넣으면 어떻게 될까

SELECT Name, Gender, Salary,
FIRST_VALUE(Name) OVER (PARTITION BY Gender ORDER BY Salary) AS FirstValue
FROM Employees

파티션별로 첫번째 값이 다른 것을 볼 수 있다.

 

 

 

LAST_VALUE function

First_Value 함수와 비슷하다. 마지막 값을 리턴해주는 함수이다.

SELECT NAME, GENDER, SALARY,
	LAST_VALUE(NAME) OVER (ORDER BY SALARY) AS LASTVALUE
FROM EMPLOYEES

여기서 범위를 인수로 지정해주지 않았기 때문에 기본값으로 처음부터 현재열까지가 범위가 된다. 

 

그래서 첫 행에서의 마지막 Name의 값은 Mark이고 두번재 행에서는 마지막 값이 John이라 그 행의 이름이 나오는 것을 볼 수 있다. 

여기에서 범위를 

ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDING FOLLOWING

으로 하면 Ron으로 만 다 뜰 것이고

파티션을 나눈다면

그 파티션마다의 마지막사람이 도배 될 것이다.

반응형

'Database > SQL Server' 카테고리의 다른 글

SQL Server - UNPIVOT 언피벗  (0) 2020.12.19
SQL Server - 분석 함수 Window functions  (0) 2020.12.18
SQL Server - Lead & Lag 함수  (0) 2020.12.18
SQL Server - NTILE 함수  (0) 2020.12.18
SQL Server - 러닝 합계 Running Total  (0) 2020.12.18