분기별 분화된 대장균의 개체 수 구하기 (LEVEL3)
각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력 (각 분기에는 'Q' )
정렬 분기 오름차순으로 해주세요. (대장균 개체가 분화되지 않은 분기는 없습니다.)
정답 코드
SELECT (CASE
WHEN (MONTH >= 1 AND MONTH <= 3) THEN "1Q"
WHEN (MONTH >= 4 AND MONTH <= 6) THEN "2Q"
WHEN (MONTH >= 7 AND MONTH <= 9) THEN "3Q"
ELSE "4Q"
END) AS QUARTER, count(*) as ECOLI_COUNT
FROM (SELECT DATE_FORMAT(DIFFERENTIATION_DATE, "%m") AS MONTH
FROM ECOLI_DATA) AS A
GROUP BY QUARTER
ORDER BY QUARTER
다른 정답 코드
SELECT (CASE
WHEN (MONTH(DIFFERENTIATION_DATE) >= 1 AND MONTH(DIFFERENTIATION_DATE) <= 3) THEN "1Q"
WHEN (MONTH(DIFFERENTIATION_DATE) >= 4 AND MONTH(DIFFERENTIATION_DATE) <= 6) THEN "2Q"
WHEN (MONTH(DIFFERENTIATION_DATE) >= 7 AND MONTH(DIFFERENTIATION_DATE) <= 9) THEN "3Q"
ELSE "4Q"
END) AS QUARTER,
COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER;
SELECT (CASE
WHEN (MONTH(DIFFERENTIATION_DATE) IN ('01','02','03') THEN "1Q"
WHEN (MONTH(DIFFERENTIATION_DATE) IN ('04','05','06') THEN "2Q"
WHEN (MONTH(DIFFERENTIATION_DATE) IN ('07','08','09') THEN "3Q"
ELSE "4Q"
END) AS QUARTER,
COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER;
MEMO
- 아래와 같은 코드를 작성했는데 제대로 출력되지 않음. FROM 에서 건너받은 이름도 QUARTER 여서 충돌
SELECT (CASE
WHEN (QUARTER >= 1 AND QUARTER <= 3) THEN "1Q"
WHEN (QUARTER >= 4 AND QUARTER <= 6) THEN "2Q"
WHEN (QUARTER >= 7 AND QUARTER <= 9) THEN "3Q"
ELSE "4Q"
END) AS QUARTER, count(*) as ECOLI_COUNT
FROM (SELECT DATE_FORMAT(DIFFERENTIATION_DATE, "%m") AS QUARTER
FROM ECOLI_DATA) AS A
GROUP BY QUARTER
ORDER BY QUARTER
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[MYSQL 40] 루시와 엘라 찾기 (0) | 2024.10.19 |
---|---|
[MYSQL 39] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.10.18 |
[MYSQL 36] 대장균들의 자식의 수 구하기 (0) | 2024.10.13 |
[MYSQL 35] 특정 물고기를 잡은 총 수 구하기 (0) | 2024.10.12 |
[MYSQL 34] 부모의 형질을 모두 가지는 대장균 찾기 (0) | 2024.10.10 |