OVER가 들어가는 것을 알아야함

1. 순위 관련 함수: RANK(), DENSE_RANK(), ROW_NUMBER()

함수 설명 예제 코드
RANK() 동일한 값은 동일 순위, 건너뛰는 순위 부여 RANK() OVER (ORDER BY salary DESC)
DENSE_RANK() 동일한 값은 동일 순위, 순위 건너뛰지 않음 DENSE_RANK() OVER (ORDER BY salary DESC)
ROW_NUMBER() 중복 없이 고유 번호 부여 (정렬 기준 순서대로) ROW_NUMBER() OVER (ORDER BY salary DESC)

예시 실행 결과:

이름 salary rank dense_rank row_number
Alice 9000 1 1 1
Bob 9000 1 1 2
Carla 8500 3 2 3
Daniel 8500 3 2 4
Evan 7000 5 3 5

2. 분포 관련 함수: CUME_DIST(), PERCENT_RANK()

함수 설명 예제 코드
CUME_DIST() 현재 행 이하의 비율 반환 (누적 분포) CUME_DIST() OVER (ORDER BY salary DESC)
PERCENT_RANK() 백분위 순위 계산 PERCENT_RANK() OVER (ORDER BY salary DESC)

예시 실행 결과:

이름 salary cume_dist percent_rank
Alice 9000 0.4 0.0
Bob 9000 0.4 0.0
Carla 8500 0.8 0.5
Daniel 8500 0.8 0.5
Evan 7000 1.0 1.0

3. 비율 함수: RATIO_TO_REPORT()

함수 설명 예제 코드
RATIO_TO_REPORT() 전체 합계 대비 현재 값의 비율 RATIO_TO_REPORT(salary) OVER ()

예시 실행 결과:

이름 salary 비율
Alice 9000 0.277
Bob 9000 0.277
Carla 8500 0.262
Daniel 8500 0.262
Evan 7000 0.215

4. 분배 함수: NTILE(n)

함수 설명 예제 코드
NTILE(n) 데이터를 n개의 그룹으로 균등 분할 NTILE(4) OVER (ORDER BY salary DESC)

예시 실행 결과 (NTILE(4) 사용 시):