학습 자료

ROW_NUMBER와 NTILE

ROW_NUMBER()NTILE(n)은 정렬된 데이터에서 순위를 매기거나 그룹을 나눌 때 유용한 SQL 윈도 함수입니다.

  • ROW_NUMBER(): 지정한 정렬 기준에 따라 각 행에 고유한 순번을 부여
  • NTILE(n): 정렬된 데이터를 n개의 균등한 그룹으로 나눔 (사분위, 십분위 등 분위 분석에 활용)

문법

ROW_NUMBER와 NTILE 문법
SELECT column1, ROW_NUMBER() OVER (ORDER BY column2) AS row_num, NTILE(n) OVER (ORDER BY column2) AS group_id FROM table_name;
  • OVER (ORDER BY ...) : 순서를 매기기 위해 정렬 기준을 지정
  • ROW_NUMBER() : 정렬된 순서대로 고유한 번호를 생성
  • NTILE(n) : 정렬된 행을 n개의 거의 동일한 크기의 그룹으로 분할

예시: 학습자 점수 순위와 사분위

아래 예시는 학습자의 final_score를 기준으로 순위를 매기고, 점수를 4개의 사분위 그룹으로 나눕니다.

학습자 순위 및 사분위 그룹화
SELECT name, final_score, ROW_NUMBER() OVER (ORDER BY final_score DESC) AS row_num, NTILE(4) OVER (ORDER BY final_score DESC) AS quartile FROM course_progress;

결과 예시

namefinal_scorerow_numquartile
Alex9811
Sara9521
Daniel9132
Mia9042
Emma8653
Noah8363
John8074
Leo7884
  • ROW_NUMBER() → 점수를 기준으로 순위를 부여
  • NTILE(4) → 학습자를 네 개의 사분위 그룹으로 균등 분할

활용 포인트

  • ROW_NUMBER(): 중복 점수와 상관없이 순위를 매겨야 할 때 적합
  • NTILE(n): 분위 분석, 등급 나누기, 상위 퍼센타일 계산에 효과적
Quiz
0 / 1

이전 행의 값을 조회할 수 있게 해주는 SQL 윈도 함수는 무엇인가요?

이전 행의 값을 조회하는 SQL 함수는 입니다.
LEAD
LAG
ROW_NUMBER
RANK

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

DB 테이블 구조

실행 결과