학습 자료

ROW_NUMBER와 NTILE

ROW_NUMBER()NTILE(n)은 SQL에서 정렬된 데이터를 분석하는 데 유용한 윈도우 함수입니다.

  • ROW_NUMBER()는 지정한 정렬 기준에 따라 각 행에 고유한 순번을 부여합니다.
  • NTILE(n)은 정렬된 행을 n개의 거의 동일한 크기의 그룹으로 나눕니다. 사분위, 십분위 등을 만들 때 유용합니다.

Syntax

ROW_NUMBER()NTILE(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 ...)는 번호를 매기기 전에 행을 어떻게 정렬할지 정의합니다
  • NTILE(n)은 정렬된 행을 n개의 그룹으로 나눕니다

예시: 강의 수강 현황

두 개의 강의, SQL 기초파이썬 입문에 대한 사용자 수강 현황이 있습니다.

각 학습자에게는 0부터 100까지의 최종_점수가 있으며, 이 값을 기준으로 강의 내에서 순위를 매기고자 합니다.

학습자에게 순위를 매기고 사분위 그룹을 지정하려면 ROW_NUMBER()NTILE(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;

Output:

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 테이블 구조

실행 결과