본문 바로가기
공부 & 프로젝트/SQL

[SQL TEST 33일차] Select, LV.3 : 대장균의 크기에 따라 분류하기 1

by donnanoa82 2025. 11. 2.

코딩테스트_프로그래머스

주제 : 대장균의 크기에 따라 분류하기 1

범위: Select

레벨: Lv.3

https://school.programmers.co.kr/learn/courses/30/lessons/299307

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


문제
대장균 개체의 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류(SIZE)를 출력하는 SQL 문을 작성해주세요.이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요.

예시
예를 들어 ECOLI_DATA 테이블이 다음과 같다면

ID PARENT_ID SIZE_

 

대장균 개체 ID(ID) 1,2,3 에 대해 개체의 크기는 각각 17, 150, 4000 이므로 분류된 이름은 각각 'LOW', 'MEDIUM', 'HIGH' 입니다. 따라서 결과를 개체의 ID 에 대해 오름차순 정렬하면 다음과 같아야 합니다.


#답

SELECT ID,
    CASE 
            WHEN (SIZE_OF_COLONY <= 100) THEN 'LOW'
            WHEN (SIZE_OF_COLONY BETWEEN 101 AND 1000) THEN 'MEDIUM'
        ELSE 'HIGH'
    END AS 'SIZE'
  FROM ECOLI_DATA
 ORDER BY ID ASC

 

CASE WHEN THEN ELSE END : 

상황에 따라 조건을 나눠 출력할 때 유용하게 쓰이는 함수

개체의 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH' 라고 분류

=> CASE WHEN을 사용하여 개체크기 (SIZE_OF_COLONY) 가 100 이하, 101~1000 사이값, 그 외의 값으로 나눠서 출력

     END AS '컬럼명' 지정