문제
https://school.programmers.co.kr/learn/courses/30/lessons/301649
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
SELECT ID,
(CASE
WHEN PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) <= 0.25 THEN 'CRITICAL'
WHEN PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) <= 0.5 THEN 'HIGH'
WHEN PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) <= 0.75 THEN 'MEDIUM'
ELSE 'LOW'
END) AS COLONY_NAME
FROM ECOLI_DATA
ORDER BY ID;
PERCENT_RANK() 함수:
- PERCENT_RANK()는 윈도우 함수, 결과 집합 내에서 각 행의 백분위수를 계산
- 백분위수는 0부터 1 사이의 값으로 나타나며, 이는 특정 행이 집합 내에서 차지하는 상대적인 순위를 나타냄
- 예를 들어, 값이 가장 큰 행은 1에 가까운 백분위수, 값이 가장 작은 행은 0에 가까운 백분위수
PERCENT_RANK() OVER (PARTITION BY <partition_expression> ORDER BY <order_expression>)
- PARTITION BY 절은 선택 사항이며, 데이터 집합을 분할하여 각각의 파티션 내에서 백분위수를 계산
- ORDER BY 절은 필수로, 백분위수를 계산할 기준이 되는 열을 지정
'SQL' 카테고리의 다른 글
[SQL 고득점 Kit] 301650. 특정 세대의 대장균 찾기 (0) | 2024.07.05 |
---|---|
[SQL 고득점 Kit] 299307. 대장균의 크기에 따라 분류하기 1 (0) | 2024.07.04 |
[SQL 고득점 Kit] 301646. 특정 형질을 가지는 대장균 찾기 (0) | 2024.07.03 |
[SQL 고득점 Kit] 299305. 대장균들의 자식의 수 구하기 (0) | 2024.07.03 |
[SQL 고득점 Kit] 298518. 특정 물고기를 잡은 총 수 구하기 (0) | 2024.07.03 |