
문제 링크
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
접근 방법
SIZE_OF_COLONY를 기준으로 내림차순 정렬한 뒤, 전체 데이터를 4등분해야 한다.
각 그룹은 상위 25%씩 나뉘며, NTILE(4) 윈도우 함수를 사용하면 쉽게 해결할 수 있다.
소스 코드
SELECT ID,
CASE NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC)
WHEN 1 THEN 'CRITICAL'
WHEN 2 THEN 'HIGH'
WHEN 3 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM ECOLI_DATA
ORDER BY ID ASC;
코드 설명
NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC)는 대장균 크기를 기준으로 내림차순 정렬한 후 4개의 그룹으로 나눈다.
각 행은 1부터 4까지의 값을 가지게 되며, CASE문을 통해 해당 값에 따라 등급을 문자열로 변환한다.
마지막 ORDER BY ID ASC를 통해 결과를 ID 기준으로 정렬한다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 JAVA] 17686. [3차] 파일명 정렬 (0) | 2026.04.27 |
|---|---|
| [프로그래머스 JAVA] 68936. 쿼드압축 후 개수 세기 (0) | 2026.04.23 |
| [프로그래머스 SQL] 131114. 경기도에 위치한 식품창고 목록 출력하기 (0) | 2026.04.07 |
| [프로그래머스 JAVA] 42839. 소수 찾기 (0) | 2024.07.16 |
| [프로그래머스 JAVA] 181832. 정수를 나선형으로 배치하기 (0) | 2024.06.20 |