[Programmers] 대장균의 크기에 따라 분류하기 1

HAHAHELLO·2025년 3월 6일

SQL

목록 보기
4/17

Lv.3 대장균의 크기에 따라 분류하기 1

문제

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

예시

나의 풀이

앞으로는 가독성과 유지보수를 고려해서 코드를 작성해야 할 것 같다.

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

다른 풀이

SELECT 
    ID, 
    CASE 
        WHEN SIZE_OF_COLONY BETWEEN 0 AND 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 문 기본구조

CASE문을 사용할 때 주의할 점은 WHEN 조건은 위에서부터 차례로 평가되므로, 더 포괄적인 조건이 뒤에 와야 한다는 것이다.

SELECT 
    컬럼명,
    CASE 
        WHEN 조건1 THEN 결과1
        WHEN 조건2 THEN 결과2
        ELSE 결과3  -- (옵션) 모든 조건을 만족하지 않을 경우 반환
    END AS 새_컬럼명
FROM 테이블명;
profile
데이터 엔지니어가 되어 봅시다 🌈

0개의 댓글