SQL

SQL window 함수 ROW_NUMBER() 행번호 매김

수박비빔밥 2024. 5. 5. 22:26
반응형

ROW_NUMBER() 함수는 SQL의 윈도우 함수 중 하나로, 선택된 결과 집합 내에서 각 행에 대해 고유한 연속 번호를 할당합니다. 이 함수는 주로 정렬이 필요한 상황에서 데이터에 순서를 지정할 때 사용되며, 특히 복잡한 데이터 분석과 처리에서 유용합니다.

구조

ROW_NUMBER() 함수의 기본 구조는 다음과 같습니다:

  • PARTITION BY: 결과 집합을 지정된 컬럼의 값에 따라 여러 그룹으로 나눕니다. 이 옵션은 선택적입니다.
  • ORDER BY: 각 파티션 또는 전체 결과 집합 내에서 행의 순서를 결정합니다.
  • alias_name: 생성된 순서 번호 컬럼의 별칭입니다.

예시

  1. 전체 직원에 대한 연속 순위 할당:이 쿼리는 직원들을 급여에 따라 내림차순으로 순위를 매깁니다.
  2. 부서별로 직원 순위 할당:이 쿼리는 각 부서 내에서 급여 기준으로 직원의 순위를 매깁니다.
  3. 구매 날짜별로 주문 순위 할당:이 쿼리는 같은 날짜에 여러 주문이 있을 경우 주문 ID를 기준으로 순위를 매깁니다.

 

 

ROW_NUMBER()를 지원하는 DBMS

  • 지원하는 DBMS:
    • PostgreSQL
    • Oracle
    • Microsoft SQL Server
    • IBM DB2

ROW_NUMBER()를 지원하지 않는 DBMS

  • 지원하지 않는 DBMS:
    • MySQL: MySQL 8.0 이전 버전은 윈도우 함수를 지원하지 않습니다. MySQL 8.0 이상에서는 ROW_NUMBER() 함수를 지원합니다.
    • SQLite: 이전 버전에서는 윈도우 함수를 지원하지 않았으나, 최근 버전에서는 지원하기 시작했습니다.

ROW_NUMBER() 함수는 데이터 집합 내에서 행의 순서를 결정하거나, 특정 기준에 따라 그룹 내 순위를 매길 때 매우 유용합니다. 사용하고 있는 DBMS에서 이 함수의 지원 여부와 정확한 사용법을 확인하는 것이 중요합니다.

반응형