728x90
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
이 문제에서는
NTILE, CASE 문에 대해서 알아야한다.
NTILE ( N + TILE)
NTILE 는 원하는 만큼의 그룹으로 기준에 따라 나눠주는 역할을 해준다.
NTILE(N) OVER (내가 원하는 기준) => 내가 원하는 기준에 따라 N개의 그룹으로 나눠 줌
이것을 활용하면
NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) 이런식으로 적용 가능하다.
CASE
case를 활용하면 조건을 활용해 새로운 열을 만들거나, 조건을 활용한 집계가 가능하다.
이 문제에서는
rank를 분류하고 숫자를 문자로 다시 저장할 때 활용했다. (rank = 1 이면 CRITICAL 로 저장하기)
문제를 풀기 위해 일단 NTILE을 이용해 대장균 개체의 크기에 따라 분류해준다.
WITH RANK_RESULT AS (
SELECT ID,
NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) AS Ranks
FROM ECOLI_DATA
)
그다음에 CASE 문을 활용해 결과를 출력한다.
SELECT ID,
CASE
WHEN Ranks = 1 THEN 'CRITICAL'
WHEN Ranks = 2 THEN 'HIGH'
WHEN Ranks = 3 THEN 'MEDIUM'
WHEN Ranks = 4 THEN 'LOW'
END AS COLONY_NAME
FROM RANK_RESULT
ORDER BY ID;
CASE
WHEN 조건 THEN 값
END
잘 외워두자!!
728x90
'데이터베이스' 카테고리의 다른 글
| 프로그래머스: 오랜 기간 보호한 동물(1) 최적화 하기 (0) | 2025.11.03 |
|---|---|
| SQL PARTITION BY 와 GROUP BY 차이 (0) | 2025.11.02 |
| SQLD 제 2과목 - 제 3장 관리구문 (2) | 2024.11.17 |
| SQLD 제 2과목 - 제 2장 SQL 활용 (1) | 2024.11.17 |
| SQLD 제 2과목 - 제 1장 SQL 기본 (0) | 2024.11.16 |