Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 연도별 대장균 크기의 편차 구하기 (MySQL) 본문

DB/프로그래머스(MySQL)

[프로그래머스] - 연도별 대장균 크기의 편차 구하기 (MySQL)

luke-king 2025. 11. 3. 16:32

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/299310

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

풀이.


SELECT YEAR(DIFFERENTIATION_DATE) AS 'YEAR'
    ,(
        SELECT MAX(SIZE_OF_COLONY) FROM ECOLI_DATA
        WHERE YEAR(DIFFERENTIATION_DATE) = YEAR
    ) - SIZE_OF_COLONY AS 'YEAR_DEV'
    ,ID
FROM ECOLI_DATA
ORDER BY YEAR, YEAR_DEV

이번 문제는 프로그래머스 "연도별 대장균 크기의 편차 구하기" MySQL 문제다.

문제 풀 때 중요 했던 점은 서브쿼리를 사용해야 한다는 점이었다.

그럼 바로 풀이해보겠다.

 

1. YEAR()를 사용해서 "DIFFERENTIATION_DATE" 값에서 연도만 뽑아낸다.

 

2. "YEAR_DEV" 값을 구하기 위해서 서브 쿼리를 사용해 준다.

우선 YEAR_DEV 값은 YEAR_DEV = 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기를 구하는 거다.

즉 MAX(SIZE_OF_COLONY) 해줘서 가장 큰 값을 구하고 다음으로 WHERE 절에서 같은 년도 중에서만 최대 값을 뽑아낸다.

다음으로 - SIZE_OF_COLONY(각 대장균의 크기)를 빼주면 우리가 원하는 값을 구할 수 있다.

 

3. 마지막으로 오름차순 YEAR, YEAR_DEV 해주면 끝이다.