반응형
Oracle에서 카테고리별 순위를 매기는 방법:
-- ROW_NUMBER() 사용
SELECT
category,
item_name,
sales,
ROW_NUMBER() OVER (PARTITION BY category ORDER BY sales DESC) as rank
FROM sales_table;
-- RANK() 사용 (동일 값은 같은 순위)
SELECT
category,
item_name,
sales,
RANK() OVER (PARTITION BY category ORDER BY sales DESC) as rank
FROM sales_table;
-- DENSE_RANK() 사용 (순위 건너뛰기 없음)
SELECT
category,
item_name,
sales,
DENSE_RANK() OVER (PARTITION BY category ORDER BY sales DESC) as rank
FROM sales_table;
주요 차이점:
- ROW_NUMBER(): 고유한 순위 부여 (1,2,3,4...)
- RANK(): 동일값 동일순위, 다음 순위 건너뜀 (1,1,3,4...)
- DENSE_RANK(): 동일값 동일순위, 건너뛰지 않음 (1,1,2,3...)
728x90
반응형
'DB' 카테고리의 다른 글
교육용 무료 Oracle XE 21c 설치 및 롤백 오류 해결 (1) | 2024.03.13 |
---|---|
[ORACLE] 구분 값과 정렬 컬럼이 다른 경우 (0) | 2023.04.12 |
[Oracle SQL Developer] 엑셀 data import (밀어 넣기) (0) | 2021.03.05 |
[DB데이터 내보내기] SSMS18 데이터 내보내기 (0) | 2021.03.05 |
MS-SQL 과 SQL-Server ? (0) | 2020.06.05 |