코딩테스트

[26.02.27 코테(MySQL)]-대장균의 크기에 따라 분류하기 2

지니248 2026. 2. 27. 19:00

Lv3. 대장균의 크기에 따라 분류하기 2

링크: https://school.programmers.co.kr/learn/courses/30/lessons/301649

 

내가 작성한 코드

-- 풀이1 (서브쿼리)
SELECT ID, 
CASE WHEN Q = 1 THEN 'CRITICAL'
     WHEN Q = 2 THEN 'HIGH'
     WHEN Q = 3 THEN 'MEDIUM'
     ELSE 'LOW' END AS COLONY_NAME
FROM (SELECT ID, NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) AS Q
      FROM ECOLI_DATA) SUB
ORDER BY ID;

-- 풀이2 (WITH)
WITH SUB AS (SELECT ID, NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) AS Q
             FROM ECOLI_DATA)
SELECT ID,
CASE WHEN Q = 1 THEN 'CRITICAL'
     WHEN Q = 2 THEN 'HIGH'
     WHEN Q = 3 THEN 'MEDIUM'
     ELSE 'LOW' END AS COLONY_NAME
FROM SUB
ORDER BY ID;

 

NTILE(4) : 전체 데이터를 4개의 그룹(사분위수)으로 균등하게 분할