반응형
풀이(MySQL)
NTILE() 함수를 사용하면 특정 데이터를 등급별로 분류할 수 있다. 문제에서는 총 4가지의 등급이 존재하므로 해당 함수를 통해 4등급으로 나눈 뒤, CASE 별로 문자로 치환하면 문제를 해결할 수 있다.
SELECT
ID,
CASE
WHEN NTILE(4) over (ORDER BY SIZE_OF_COLONY) = 1 THEN "LOW"
WHEN NTILE(4) over (ORDER BY SIZE_OF_COLONY) = 2 THEN "MEDIUM"
WHEN NTILE(4) over (ORDER BY SIZE_OF_COLONY) = 3 THEN "HIGH"
WHEN NTILE(4) over (ORDER BY SIZE_OF_COLONY) = 4 THEN "CRITICAL"
END AS COLONY_NAME
FROM
ECOLI_DATA
ORDER BY
ID
NTILE 함수를 네 번이나 사용하는 것이 불편하다면, 아래와 같이 해결할 수도 있다.
SELECT
ID,
CASE GRADE
WHEN 1 THEN "LOW"
WHEN 2 THEN "MEDIUM"
WHEN 3 THEN "HIGH"
WHEN 4 THEN "CRITICAL"
END AS COLONY_NAME
FROM (
SELECT
ID,
NTILE(4) over (ORDER BY SIZE_OF_COLONY) AS GRADE
FROM
ECOLI_DATA
) AS t
ORDER BY
ID
반응형
'SQL 쿼리 연습 > SELECT' 카테고리의 다른 글
[Lv.1 / 프로그래머스 / SQL] 과일로 만든 아이스크림 고르기 (0) | 2024.11.17 |
---|---|
[Lv.1 / 프로그래머스 / SQL] 한 해에 잡은 물고기 수 구하기 (0) | 2024.06.27 |
[Lv.1 / 프로그래머스 / SQL] 가장 큰 물고기 10마리 구하기 (0) | 2024.06.24 |
[Lv.1 / 프로그래머스 / SQL] 특정 형질을 가지는 대장균 찾기 (1) | 2024.05.02 |
[Lv.1 / 프로그래머스 / SQL] 잡은 물고기의 평균 길이 구하기 (0) | 2024.04.25 |