본문 바로가기
문제 풀이/프로그래머스

[MYSQL 24] 연도별 대장균 크기의 편차 구하기

by hyeminigo 2024. 9. 24.

연도별 대장균 크기의 편차 구하기 (LEVEL2)

 

 

 

분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성

분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기

정렬 연도에 오름차순, 대장균 크기의 편차 오름차순


정답 코드

SELECT YEAR, YEAR_COLONY - SIZE_OF_COLONY AS YEAR_DEV, ID
FROM ECOLI_DATA E JOIN (SELECT YEAR(DIFFERENTIATION_DATE) YEAR, MAX(SIZE_OF_COLONY) YEAR_COLONY
                      FROM ECOLI_DATA
                      GROUP BY YEAR) Y ON YEAR(DIFFERENTIATION_DATE) = Y.YEAR
ORDER BY Y.YEAR, YEAR_DEV

 

 

MEMO

처음에는 DATE TYPE 이 아닌 String 이라고 생각해서 아래와 같이 풀었다. 결과가 똑같이 출력되는데 실패가 떴다. 아직 이유를 모르겠다. 

SELECT YEAR, YEAR_COLONY - SIZE_OF_COLONY AS YEAR_DEV, ID
FROM ECOLI_DATA E JOIN (SELECT SUBSTRING_INDEX(DIFFERENTIATION_DATE, '-', 1) YEAR, MAX(SIZE_OF_COLONY) YEAR_COLONY
                      FROM ECOLI_DATA
                      GROUP BY YEAR) Y ON SUBSTRING_INDEX(DIFFERENTIATION_DATE, '-', 1) = Y.YEAR
ORDER BY YEAR, YEAR_DEV