문제 : https://school.programmers.co.kr/learn/courses/30/lessons/301649
풀이 : https://chaemi720.tistory.com/369
코드 1
SELECT D.ID
, CASE
WHEN D.R > D.MAX_ID*0.75 THEN 'CRITICAL'
WHEN D.R > D.MAX_ID*0.5 THEN 'HIGH'
WHEN D.R > D.MAX_ID*0.25 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM (
SELECT ID
# 순위
, ROW_NUMBER() OVER (ORDER BY SIZE_OF_COLONY) AS R
# 총 데이터의 수
, MAX(ID) OVER() AS MAX_ID
FROM ECOLI_DATA
) D
ORDER BY D.ID;
코드 2
SELECT D.ID
, CASE
WHEN D.R >= 0.75 THEN 'CRITICAL'
WHEN D.R >= 0.5 THEN 'HIGH'
WHEN D.R >= 0.25 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM (
SELECT ID
# 백분위수
, PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY) AS R
FROM ECOLI_DATA
) D
ORDER BY D.ID;
'📝 Study Notes > SQL' 카테고리의 다른 글
특정 세대의 대장균 찾기 (0) | 2024.10.26 |
---|