1. 문제 풀이 아이디어
MAX() OVER (PARTITION BY)
윈도우 함수를 사용하여 연도별 최대 크기를 구하고, 현재 크기와의 차이를 계산하여 문제를 해결할 수 있다.
2. 나의 정답 코드
SELECT
YEAR(differentiation_date) year,
MAX(size_of_colony) OVER (PARTITION BY YEAR(differentiation_date)) - size_of_colony year_dev,
id
FROM ecoli_data
ORDER BY year, year_dev;
3. 정리
YEAR(differentiation_date)
로 연도를 추출하여 그룹을 만든다.
MAX(size_of_colony) OVER (PARTITION BY YEAR(differentiation_date))
를 사용하여 해당 연도의 최대 크기를 구한다.
year_dev
는 해당 연도의 최대 크기에서 현재 크기를 뺀 값이다.
ORDER BY year, year_dev
로 연도별 정렬 후, year_dev 기준으로 정렬한다.
Share article