[프로그래머스][MySQL] SELECT - 대장균의 크기에 따라 분류하기 2

문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

  • WITH
    • 가상 테이블을 만들 수 있는 방법
  • NTILE()
    • 지정된 수 만큼의 등급으로 나누고, 각 등급 번호를 출력
    • ex. NTILE(4) : 1(0%~25%), 2(26%~50%), 3(51%~75%), 4(76%~100%)
WITH R AS (
    SELECT ID, NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) AS PER
    FROM ECOLI_DATA
)
SELECT ID,
       (CASE
        WHEN PER = 1
        THEN 'CRITICAL'
        WHEN PER = 2
        THEN 'HIGH'
        WHEN PER = 3
        THEN 'MEDIUM'
        ELSE 'LOW'
       END) AS COLONY_NAME
FROM R
ORDER BY ID;
728x90