-
SQL window 함수 ROW_NUMBER() 행번호 매김SQL 2024. 5. 5. 22:26반응형
ROW_NUMBER() 함수는 SQL의 윈도우 함수 중 하나로, 선택된 결과 집합 내에서 각 행에 대해 고유한 연속 번호를 할당합니다. 이 함수는 주로 정렬이 필요한 상황에서 데이터에 순서를 지정할 때 사용되며, 특히 복잡한 데이터 분석과 처리에서 유용합니다.
구조
ROW_NUMBER() 함수의 기본 구조는 다음과 같습니다:
- PARTITION BY: 결과 집합을 지정된 컬럼의 값에 따라 여러 그룹으로 나눕니다. 이 옵션은 선택적입니다.
- ORDER BY: 각 파티션 또는 전체 결과 집합 내에서 행의 순서를 결정합니다.
- alias_name: 생성된 순서 번호 컬럼의 별칭입니다.
예시
- 전체 직원에 대한 연속 순위 할당:이 쿼리는 직원들을 급여에 따라 내림차순으로 순위를 매깁니다.
- 부서별로 직원 순위 할당:이 쿼리는 각 부서 내에서 급여 기준으로 직원의 순위를 매깁니다.
- 구매 날짜별로 주문 순위 할당:이 쿼리는 같은 날짜에 여러 주문이 있을 경우 주문 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에서 이 함수의 지원 여부와 정확한 사용법을 확인하는 것이 중요합니다.
반응형'SQL' 카테고리의 다른 글
SQL substr함수 - 문자열 중간 추출(=엑셀 mid함수) (0) 2024.05.10 SQL date_trunc 함수 날짜 절삭(주단위 짜르기, 월단위 짜르기) (0) 2024.05.07 SQL to_char 날짜 데이터 문자열로 변환 (0) 2024.04.06 SQL REGEXP_LIKE 정규식 문자열 포함 검색 (0) 2024.04.03 SQL JSON_EXTRACT_PATH_TEXT 함수 - SQL 통해 json 문자 추출하기 (0) 2024.03.31