윈도우 함수 문법
SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ([PARTITION BY 컬럼] [OREDER BY 절] [WINDOWING 절]) FROM 테이블명
WINDOW_FUNCTION : 함수명
ARGUMENTS : 인수
PARTITION BY : 전체 집합을 기준에 의해 소그룹으로 나눌 수 있다.
ORDER BY : 어떤 항목에 대해 순위 지정할지 결정
WINDOWING 절 : 행 기준의 범위 지정가능.
- ROW_NUMBER
RANK, DENSE_RANK가 동일한 건에 대해서 동일한 순위를 부여하지만. ROW_NUMBER는 동일한 값이라도 고유한 순위를 부여한다.
SELECT JOB, ENAME, SAL
ROW_NUMVER() OVER (ORDER BY SAL DESC) ROW_NUMBER
FROM EMP;
동일한 순위를 배제하기 위해 유니크한 순위를 정함.
같은 값에 대해 어떤 결과가 먼저 나올지 순서 정하고싶으면 ORDER BY 를 같이 기재.
- 예를들어 그룹 지정시에
부서 날짜 ----------- 영업부 20230531 영업부 없음 HR부 없음 개발부 20230531 개발부 없음
이런식으로 테이블이 주어졌을때 부서가 날짜가 있으면 날짜를 출력, 없으면 없음을 출력하고싶은경우 order by 함수를 쓰고 row_num을 줘서 where = 1 인 쿼리만 구하면 된다!