ROW\_NUMBER

ROW_NUMBER (행 번호)

ROW_NUMBER 윈도우 함수는 파티션 안의 현재 행의 순번을 1부터 시작해 반환해요.

ROW_NUMBER()는 각 파티션 안에서 행을 정렬한 뒤 순위를 매기는 데 흔히 사용돼요. 결정적인 결과를 얻으려면 윈도우 정의에 ORDER BY 절을 지정하세요.

출처: 문서

본문

ROW_NUMBER()

사용 참고 사항

  • ROW_NUMBER()는 인자를 받지 않습니다.
  • 번호는 각 PARTITION BY 그룹마다 다시 시작됩니다.
  • 행 순서는 윈도우의 ORDER BY 절에 의해 결정됩니다.
  • ROW_NUMBER()에는 명시적 윈도우 프레임 절을 지정할 수 없습니다.

예시

각 영업사원에게 연간 누계 매출로 행 번호를 부여합니다.

SELECT
    ROW_NUMBER() OVER (ORDER BY SalesYTD DESC) AS Row,
    FirstName,
    LastName,
    SalesYTD AS "Total sales YTD"
FROM Sales.vSalesPerson;

출력:

Row FirstName LastName Total sales YTD
1 Joe Smith 2251368.34
2 Alice Davis 2151341.64
3 James Jones 1551363.54
4 Dane Scott 1251358.72

각 고객 파티션 안에 결제 시간 순으로 행 번호를 부여합니다.

SELECT
    customer_id,
    payment_date,
    amount,
    ROW_NUMBER() OVER (
        PARTITION BY customer_id
        ORDER BY payment_date
    ) AS payment_number
FROM payment;

출력:

customer_id payment_date amount payment_number
1 2023-02-14 23:22:38.996577 5.99 1
1 2023-02-15 16:31:19.996577 0.99 2
1 2023-02-15 19:37:12.996577 9.99 3
2 2023-02-17 19:23:24.996577 2.99 1
2 2023-02-17 19:24:10.996577 0.99 2

더 알아보기 (Learn more)