문제 출저
https://school.programmers.co.kr/learn/courses/30/lessons/301649
문제 풀이
대장균 개체의 크기를 내림차순으로 정렬했을 때 상위 0% ~ 25%는 CRITICAL, 26% ~ 50% HIGH, 51% ~ 75% MEDIUM, 76% ~ 100% LOW라 분류합니다.
CASE WHEN 문을 사용하여 조건에 맞는 결과를 출력합니다. 문제를 보면 100%를 4개로 분할한 것을 알 수 있습니다.
NTILE 문을 사용하여 4개의 영역으로 나눌 수 있습니다.
NTILE 데이터를 정렬한 후에 그룹으로 나누는데 사용합니다. 데이터를 동일한 크기의 그룹으로 나누어 분석할 때 유용합니다.
SQL
SELECT
ID,
CASE
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 1 THEN 'LOW'
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 2 THEN 'MEDIUM'
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 3 THEN 'HIGH'
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 4 THEN 'CRITICAL'
END AS COLONY_NAME
FROM
ECOLI_DATA
ORDER BY
ID