SQL Coding Test/[Programmers]

[Programmers] 대장균의 크기에 따라 분류하기 2 (Lv.3)

duswn1204 2026. 5. 26. 23:14

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/301649

🖥️ 문제 풀이

SELECT ID,
        CASE NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC)
            WHEN 1 THEN 'CRITICAL'
            WHEN 2 THEN 'HIGH'
            WHEN 3 THEN 'MEDIUM'
            WHEN 4 THEN 'LOW'
        END AS COLONY_NAME
FROM ECOLI_DATA
ORDER BY ID ASC;

💡 문제 해결

NTILE(n) 함수란 데이터를 정렬한 후 n개의 그룹으로 균등하게 나누고, 각 행에 그룹 번호를 부여하는 윈도우 함수

기본 문법:

NTILE(그룹수) OVER (ORDER BY 기준컬럼)
 

 

예:

NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC)
 

→ SIZE_OF_COLONY를 큰 순서로 정렬 후, 전체 데이터를 4등분