Menu
Coddy logo textTech

ROW_NUMBER function

Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 57번째.

창 함수(Window function)는 **현재 행과 관련된** 테이블 행 집합에 대해 계산을 수행합니다. 일반 집계 함수와 달리 창 함수는 결과를 단일 행으로 축소하지 않습니다.

특히 다음과 같은 작업이 필요할 때 유용합니다:

  • 누적 합계 계산
  • 그룹 내 항목 순위 매기기
  • 현재 행을 이전/다음 행과 비교
  • 시간 경과에 따른 추세 분석

예를 들어 윈도우 함수(window function) 유스케이스에 대한 몇 가지 실제 사례는 다음과 같습니다.

  • 매출 분석
    • 각 연도(1995, 1997, 1999)까지의 누적 매출 계산
    • 각 분기별 최고 판매 제품 찾기
  • 스포츠 통계
    • 연도별 올림픽 메달 수 추적
    • 각 경기 기간(2000, 2004, 2008)의 선두 선수 파악

ROW_NUMBER()는 가장 간단한 window 함수 중 하나입니다. 결과 집합의 각 row에 고유한 순차 번호를 할당합니다. 사용법은 다음과 같습니다:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

ROW_NUMBER()와 함께 OVER 절을 사용하는 것은 필수적입니다: ROW_NUMBER() OVER ()

예를 들어:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

이렇게 하면 1부터 전체 행 수까지 카운트하는 row_num 열이 추가됩니다.

참고: OVER 절에는 번호 매기기 방식을 제어하기 위한 정렬 및 파티션 분할 지시사항이 포함될 수 있습니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블과 열:

  • <strong>liquids</strong>: <strong>id</strong>, <strong>density</strong>

밀도가 5.677 초과인 모든 액체를 조회하세요.

결과에 번호를 매기고(ROW_NUMBER() 함수 사용) 이 열의 이름을 row_num으로 지정하세요.

직접 해보기

-- 윈도우 함수를 사용하여 필터링된 결과의 각 행에 번호를 매깁니다
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: SQL 플레이그라운드