[프로그래머스] SQL/오답 노트

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

SH3542 2024. 10. 18. 19:38

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

 

RANK()를 통한다면 구하는 과정이 난해했기에 활용할 수 있는 함수를 보고 시작했다.

NETILE(n) => 기준 값에 대해 n개의 순위로 나눠 각각 등급 부여

 

SELECT ID, CASE WHEN NT = 4 THEN 'CRITICAL'
                WHEN NT = 3 THEN 'HIGH'
                WHEN NT = 2 THEN 'MEDIUM'
                ELSE 'LOW' END COLONY_NAME
FROM ECOLI_DATA A JOIN (SELECT ID, NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) NT
                        FROM ECOLI_DATA) B
USING(ID)
ORDER BY ID