알고리즘/SQL

[프로그래머스] 분기별 분화된 대장균의 개체 수 구하기

예림밈 2026. 1. 7. 13:59
728x90

문제 : 각 분기(QUARTER)별 분화된 대장균의 개체의 총 수(ECOLI_COUNT)를 출력하는 SQL 문을 작성해주세요. 이때 각 분기에는 'Q' 를 붙이고 분기에 대해 오름차순으로 정렬해주세요.

 

풀이: 분기별로 개체 수를 구하는 문제이다. 

SQL 함수를 모른다면 다음과 같이 풀어도 된다. 

SELECT 
    CASE  
        WHEN DATE_FORMAT(DIFFERENTIATION_DATE,'%m') IN('01','02','03') THEN '1Q'
        WHEN DATE_FORMAT(DIFFERENTIATION_DATE,'%m') IN('04','05','06') THEN '2Q'
        WHEN DATE_FORMAT(DIFFERENTIATION_DATE,'%m') IN('07','08','09') THEN '3Q'
        WHEN DATE_FORMAT(DIFFERENTIATION_DATE,'%m') IN('10','11','12') THEN '4Q'
    
END AS QUARTER, COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA 
GROUP BY QUARTER
ORDER BY QUARTER ASC;

 

SQL에 내장되어 있는 QUARTER( )함수로 간단하게 풀 수 있다. 

SELECT CONCAT(QUARTER(DIFFERENTIATION_DATE),'Q') AS QUARTER, COUNT(*) AS ECOLI_COUNT
FROM ECOLI_DATA 
GROUP BY QUARTER
ORDER BY QUARTER ASC;

 


문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/299308

728x90