728x90
SMALL
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

SELECT ID,
CASE
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) = 1 THEN 'CRITICAL'
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) = 2 THEN 'HIGH'
WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) = 3 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM ECOLI_DATA
ORDER BY ID
왜 이렇게 풀었을까?
- 크기에 따라 컬럼을 설정해주는 문제였습니다. 총 데이터 수가 4의 배수이며, '같은 사이즈의 대장균 개체가 서로 다른 이름으로 분류되는 경우'가 없다고 했기에 바로 사분위수를 생각해봤습니다 !
- SQL에서는 사분위수를 NTILE() 함수로 구할 수 있습니다. SQLD에도 NTILE()로 등급을 구하는 문제가 종종 나오는데 시험 대비로 공부했던 기억 덕분에 해당 문제도 쉽게 풀어낼 수 있었던 것 같습니다.
- 기본적인 사용 방식은 NTILE() 함수에 몇 분위로 나눌지를 넘겨주고, 기준을 OVER 구문 뒤에 넣어주면 끝 !
728x90
LIST
'알고리즘 문제 풀이 > SQL 고득점 Kit' 카테고리의 다른 글
| 📕 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2025.10.01 |
|---|---|
| 📕 자동차 대여 기록 별 대여 금액 구하기 (0) | 2025.09.30 |
| 📕 입양 시각 구하기(2) (0) | 2025.09.20 |
| 📙 부서별 평균 연봉 조회하기 (2) | 2025.01.30 |
| 📙 즐겨찾기가 가장 많은 식당 정보 출력하기 (2) | 2025.01.27 |