하루에 하나씩 공부하기
분기별 분화된 대장균의 개체 수 구하기-LV2 본문
- 문제
각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요. 대장균 개체가 분화되지 않은 분기는 없습니다.
- 코딩테스트 연습 - 분기별 분화된 대장균의 개체 수 구하기 | 프로그래머스 스쿨
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 키포인트
분기별 구할 때 CONCAT으로 1+Q 형식 만들기
DATE 타입의 QUARTER() 사용하면 쿼터 바로 구할 수 있음
- 코드
1. QUARTER 사용
SELECT
CONCAT(QUARTER(DIFFERENTIATION_DATE), 'Q') AS QUARTER,
COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER
2. CEIL 사용(몫 올림)
SELECT
CONCAT(CEIL(MONTH(DIFFERENTIATION_DATE) / 3), 'Q') QUARTER
, COUNT(ID) ECOLI_COUNT
FROM
ECOLI_DATA
GROUP BY
QUARTER
ORDER BY
QUARTER
3. CASE 절 사용
SELECT
CASE
WHEN MONTH(DIFFERENTIATION_DATE) IN (1, 2, 3) THEN '1Q'
WHEN MONTH(DIFFERENTIATION_DATE) IN (4, 5, 6) THEN '2Q'
WHEN MONTH(DIFFERENTIATION_DATE) IN (7, 8, 9) THEN '3Q'
ELSE '4Q'
END AS QUARTER,
COUNT(ID) AS ECOLI_COUNT
FROM ECOLI_DATA
GROUP BY QUARTER
ORDER BY QUARTER ASC;'SQL 코딩테스트 > LV2' 카테고리의 다른 글
| 가격대 별 상품 개수 구하기-LV2 (0) | 2024.12.16 |
|---|---|
| 자동차 종류별 특정 옵션이 포함된 자동차 수 구하기-LV2 (1) | 2024.12.14 |
| 업그레이된 아이템 구하기-LV2 (0) | 2024.12.10 |
| 부모의 형질을 모두 가지는 대장균 찾기-LV2 (0) | 2024.12.09 |
| 조건에 맞는 개발자 찾기-LV2 (1) | 2024.11.22 |