SQL
프로그래머스 SQL - 상위 퍼센트 대로 나누기 / percent_rank()
silver-w
2025. 3. 27. 14:10
프로그래머스 - 대장균의 크기에 따라 분류하기 2번 문제
-정답-
select ID
, (case
when p <= 0.25 then 'CRITICAL'
when p <= 0.5 then 'HIGH'
when p <= 0.75 then 'MEDIUM'
else 'LOW'
end) as COLONY_NAME
from (select ID
, percent_rank() over (order by SIZE_OF_COLONY desc) p
from ECOLI_DATA) t
order by ID ASC
필요한 지식
percent_rank() : 상대적 백분위 수를 나타낸다. 값이 낮을 수록 값이 크다.
"상위 ~ 퍼센트" 값을 구할때 매우 유용할듯
기본구성 Percent_rank() over(partition by 컬럼1 order by 컬럼2 ASC/DESC) 이때 partition by 는 생략 가능 , |
select 고객번호, 마일리지
, percent_rank() over(partition by 지역 order by 마일리지 DESC)*100 백분위
from 고객
order by 백분위 Asc;