반응형
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 |