[SQL] 대장균의 크기에 따라 분류하기 2

2024. 5. 6. 00:24코딩 테스트

문제

 

 

개념
  • PERCENT_RANK(PARTION BY 컬럼1 ORDER BY 컬럼2)
    • 컬럼1 내에서 컬럼2의 퍼센트값을 출력함.
    • RANK  : 그룹에서 값의 순위
    • ROW_NUMBER  : 1부터 중복을 허용하지 않은 유일한 순서 값을 할당

 

정답
SELECT 
    ID,
    CASE 
        WHEN PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) <= 0.25
        THEN 'CRITICAL'
        WHEN PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) <= 0.5
        THEN 'HIGH'
        WHEN PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) <= 0.75
        THEN 'MEDIUM'
        ELSE 'LOW'
    END AS COLONY_NAME
FROM ECOLI_DATA
ORDER BY 1