https://school.programmers.co.kr/learn/courses/30/lessons/301649
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드
SELECT ID,
CASE
WHEN PRANK <= 0.25 THEN 'CRITICAL'
WHEN PRANK <= 0.5 THEN 'HIGH'
WHEN PRANK <= 0.75 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM (
SELECT ID,
SIZE_OF_COLONY,
PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) AS PRANK
FROM ECOLI_DATA
) AS RANKED
ORDER BY ID
쿼리 실행 순서
- FROM
- 테이블 또는 서브쿼리(ECOLI_DATA)의 데이터를 불러옵니다.
- WHERE
- (없음: 조건이 있다면 이 단계에서 필터링)
- WINDOW FUNCTIONS (PERCENT_RANK())
- OVER (...) 구문이 실행되어 각 행에 대해 PRANK 값이 계산됩니다.
- SELECT
- ID, SIZE_OF_COLONY, PRANK이 선택되고,
- 외부 SELECT에서는 CASE로 PRANK 값을 바탕으로 COLONY_NAME을 계산합니다.
- ORDER BY
- 최종 결과를 ID 기준으로 정렬합니다.
'프로그래머스' 카테고리의 다른 글
[MySQL][String, Data] 자동차 평균 대여기간 구하기 (0) | 2025.05.19 |
---|---|
[SQL] PERCENT_RANK() 윈도우 함수 완전 정리 (0) | 2025.05.12 |
[프로그래머스 SQL] 조건에 맞는 개발자 찾기 (0) | 2025.03.19 |
[프로그래머스 SQL] 이름에 el이 들어가는 동물 찾기 (0) | 2025.03.18 |
[프로그래머스 SQL] 멸종위기의 대장균 찾기 (0) | 2025.03.18 |