DB

Oracle 컬럼 카테고리별로 순위 매기는 방법

ZZJJing 2023. 3. 4. 16:07
반응형

 

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
반응형