https://school.programmers.co.kr/learn/courses/30/lessons/299308
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없습니다.
SELECT CASE
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN '1' AND '3' THEN '1Q'
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN '4' AND '6' THEN '2Q'
WHEN MONTH(DIFFERENTIATION_DATE) BETWEEN '7' AND '9' THEN '3Q'
ELSE '4Q'
END AS QUARTER,
COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER
- CASE 구문을 활용하여, 각 분기로 변환
또 다른 풀이
SELECT CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') AS QUARTER, COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER
- QUARTER(날짜) : 날짜를 이용해서 분기를 구해주는 함수
ex. QUARTER(2025-02-19) -> 2 - CONCAT 을 활용하여 QUARTER에서 구한 분기와 'Q' 를 합치기
'SQL' 카테고리의 다른 글
[MYSQL] 프로그래머스(LEVEL 4) - 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (0) | 2025.02.26 |
---|---|
[MYSQL] 프로그래머스(LEVEL 4) - 우유와 요거트가 담긴 장바구니 (0) | 2025.02.20 |
[MYSQL] 프로그래머스(LEVEL 4) - 저자 별 카테고리 별 매출액 집계하기 (0) | 2025.02.18 |
[MYSQL] 프로그래머스(LEVEL 3) - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2025.02.16 |
[MYSQL] 프로그래머스(LEVEL 2) - 노선별 평균 역 사이 거리 조회하기 (0) | 2025.02.15 |