💻 프로그래밍/프로그래머스

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

ssoniya 2025. 2. 25. 15:07

 

* 문제분석
1) SELECT year, year_dev, id
2)year_dev = 연도별 가장 큰 대장균 크기 -  각 대장균 크기
3) ORDER BY year ASC , year_dev ASC

* 문제풀이
PARTITION BY를 사용했다.
GROUP BY와 다르게 원래 개체의 데이터를 그대로 유지하면서 연산이 적용된다!
GROUP BY는 데이터를 그룹으로 합치면서 각 연도별 최대 크기만 남고 개별 행이 사라지기 때문에, 각 대장균의 크기를 구할 수가 없다..

SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) OVER (PARTITION BY YEAR(DIFFERENTIATION_DATE)) - SIZE_OF_COLONY AS YEAR_DEV, ID
FROM ECOLI_DATA
ORDER BY YEAR ASC, YEAR_DEV ASC;