본문 바로가기
SQL

[SQL] 대장균의 크기에 따라 분류하기 2, CASE WHEN, PERCENT_RANK()

by 유일리 2024. 7. 8.

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

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

 

프로그래머스

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

programmers.co.kr

 

문제 해결 TIP

문제의 조건에 따라 값이 정해져야 하므로 CASE WHEN 조건문을 사용할 수 있다. 이때, 개체의 크기 순별로 조건이 나뉜다. PERCENT_RANK함수는 인수로 지정한 값의 그룹 내의 상대적 위치를 나타내는 백분위수 순위를 반환한다. 서브쿼리의 결과는 다음과 같다.

 

전체 코드

SELECT A.ID,
CASE
    WHEN A.PER <= 0.25 THEN 'CRITICAL'
    WHEN A.PER <= 0.5 THEN 'HIGH'
    WHEN A.PER <= 0.75 THEN 'MEDIUM'
    ELSE 'LOW'
END AS COLONY_NAME
FROM(
    SELECT ID,
    PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) AS PER
    FROM ECOLI_DATA
) AS A
ORDER BY A.ID;

댓글