문제
풀이
코드
WITH per AS (
SELECT id, PERCENT_RANK() OVER (ORDER BY size_of_colony DESC) as per_rank
FROM ECOLI_DATA
)
SELECT id,
CASE
WHEN per_rank < 0.25 THEN 'CRITICAL'
WHEN per_rank < 0.5 THEN 'HIGH'
WHEN per_rank < 0.75 THEN 'MEDIUM'
ELSE 'LOW'
END AS colony_name
FROM per
ORDER BY id;
설명
문제에서 요구한 결과를 만들기 위해 쿼리에서 실제로 쓴 것들이다.
- ORDER BY 로 정렬 (내림차순 포함)
- 서브쿼리를 사용
- CASE WHEN 으로 조건에 따라 값을 분기