SQL 기본 및 활용
🗄️ SQLSQL 활용★★★☆☆가끔

몫과 자리를 재는 함수 — NTILE·RATIO_TO_REPORT·비율 순위

NTILE 은 몇 등분한 뒤 몇 번째 통인지, RATIO_TO_REPORT 는 전체 합에서 차지하는 비율, PERCENT_RANK·CUME_DIST 는 순위를 0~1 로 환산한 값이다.

NTILERATIO_TO_REPORTPERCENT_RANKCUME_DIST

왜 그런지까지

NTILE(4) 는 정렬한 행을 넷으로 나눠 1~4 를 매긴다. 행 수가 등분되지 않으면 앞쪽 통이 한 행씩 더 갖는다.

RATIO_TO_REPORT 는 값 ÷ 창 전체의 합이라 모두 더하면 1이 된다. CUME_DIST 는 '나보다 앞선 행의 누적 비율', PERCENT_RANK 는 '(순위-1) ÷ (전체-1)' 로 첫 행이 반드시 0이 된다. 이름이 비슷해 정의를 맞바꾼 선지가 많다.

돌려 보기

급여 순으로 넷으로 나눠 본다. 10명을 4등분하면 앞쪽 통이 3명씩인 것을 확인하자.

헷갈리는 것

NTILE 의 나머지 처리

행 수가 등분되지 않으면 앞쪽 통이 한 행씩 더 가져간다.

PERCENT_RANK vs CUME_DIST

PERCENT_RANK 는 (순위-1)÷(전체-1) 이라 첫 행이 0이고, CUME_DIST 는 누적 비율이라 마지막 행이 1이다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다