프로그래머스 - 대장균의 크기에 따라 분류하기 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;
'SQL' 카테고리의 다른 글
[DB]NULL값 허용과 관계테이블 (0) | 2024.11.20 |
---|---|
SQL기출 오답풀이 (0) | 2024.11.14 |
SQL 깜지 (0) | 2024.10.25 |
[Oracle] 비율함수 (0) | 2024.10.25 |
[oracle sql] 의사 컬럼, 분석 함수, 계층 쿼리 (0) | 2024.10.22 |