프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
대장균 개체의 크기가 100 이하라면 'LOW', 100 초과 1000 이하라면 'MEDIUM', 1000 초과라면 'HIGH' 라고 분류합니다. 대장균 개체의 ID(ID) 와 분류(SIZE)를 출력하는 SQL 문을 작성해주세요.이때 결과는 개체의 ID 에 대해 오름차순 정렬해주세요.
1. 대장균 크기 분류
문제에서 제시한 조건대로 SIZE를 분류하기 위해서는 CASE 구문을 사용해야 한다.
MySQL :: MySQL 8.4 Reference Manual :: 15.6.5.1 CASE Statement
CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] ... [ELSE statement_list] END CASE Or: CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE T
dev.mysql.com
CASE 구문의 경우 'CASE WHEN ~ THEN ~ END ~' 의 순서로 구성되며,
구분해야하는 분류의 개수에 따라 'WHEN ~ THEN ~' 구문을 늘리고 줄일 수 있다.
별도의 조건이 필요없는 경우라면 'ELSE ~' 구문을 사용할 수 있으나, 해당 문제에서는 불필요하다.
위 문제에서는 총 3개의 분류를 제시하고 있기 때문에, 총 3번의 WHEN ~ THEN ~ 구문 반복이 발생한다.
모든 분류가 완료되면, 'END (컬럼 명)'으로 마무리한다.
SELECT CASE WHEN SIZE_OF_COLONY <= 100 THEN 'LOW'
WHEN SIZE_OF_COLONY > 100 AND SIZE_OF_COLONY <= 1000 THEN 'MEDIUM'
WHEN SIZE_OF_COLONY > 1000 THEN 'HIGH'
END SIZE
2. 전체 코드
SELECT ID
,CASE WHEN SIZE_OF_COLONY <= 100 THEN 'LOW'
WHEN SIZE_OF_COLONY > 100 AND SIZE_OF_COLONY <= 1000 THEN 'MEDIUM'
WHEN SIZE_OF_COLONY > 1000 THEN 'HIGH'
END SIZE
FROM ECOLI_DATA
ORDER BY ID
'연습장 > SQL' 카테고리의 다른 글
[프로그래머스] Lv3. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (MySQL) (0) | 2024.08.15 |
---|---|
[프로그래머스] Lv3. 대장균들의 자식의 수 구하기 (MySQL) (0) | 2024.08.14 |
[프로그래머스] Lv.3 자동차 대여 기록에서 대여중/대여 가능 여부 구분하기 (MySQL) (0) | 2024.08.10 |
[프로그래머스] Lv.3 부서별 평균 연봉 조회하기 (MySQL) (0) | 2024.08.08 |
[프로그래머스] Lv.3 조건에 맞는 사용자 정보 조회하기 (MySQL) (0) | 2024.08.07 |
댓글