728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/301649
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

| 대장균 개체의 ID | 부모 개체의 ID | 개체의 크기 | 분화되어 나온 날짜 | 개체의 형질 |
| ID | PARENT_ID | SIZE_OF_COLONY | DIFFERENTIATION_DATE | GENOTYPE |
| 1 | null | 10 | 2019-01-01 | 5 |
| 2 | null | 2 | 2019-01-01 | 3 |
| 3 | 1 | 100 | 2020-01-01 | 4 |
| 4 | 2 | 16 | 2020-01-01 | 4 |
| 5 | 2 | 17 | 2020-01-01 | 6 |
| 6 | 4 | 101 | 2021-01-01 | 22 |
| 7 | 6 | 101 | 2022-01-01 | 23 |
| 8 | 6 | 1 | 2022-01-01 | 27 |
풀이
with a as(
SELECT ID
,PERCENT_RANK() OVER ( ORDER BY SIZE_OF_COLONY DESC ) SIZE_RANK
FROM ECOLI_DATA
)
select
B.ID,
case
when a.SIZE_RANK <= 0.25 then 'CRITICAL'
when a.SIZE_RANK <= 0.5 then 'HIGH'
when a.SIZE_RANK <= 0.75 then 'MEDIUM'
else 'LOW'
END AS COLONY_NAME
from ECOLI_DATA b
left join a on a.id =b.id
ORDER BY ID
윈도우 함수중에 PERCENT_RANK 을 이용하여 파티션에서 백분률을 구할수있습니다
쓰는법
PERCENT_RANK() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
이를 이용해 전체 사이즈 백분률을 구하고 해당 구한 값으로 퍼센트당 명칭 조건문을 넣으면 끗
728x90
'문제풀이 > SQL' 카테고리의 다른 글
| select Lv5. 멸종위기의 대장균 찾기 (5) | 2025.08.04 |
|---|---|
| 부모의 형질을 모두 가지는 대장균 찾기 (0) | 2025.07.15 |
| 월별 잡은 물고기 수 구하기 (1) | 2025.07.15 |
| 월별 잡은 물고기 수 구하기 (0) | 2025.07.14 |
| 물고기 종류 별 잡은 수 구하기 (1) | 2025.07.14 |
댓글