문제
분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.
풀이
1. GROUP BY로 분화된 연도별로 묶는다.
2. MAX로 연도 중 가장 큰 대장균의 크기를 구한다.
3. 1,2를 TABLE B라고 칭하고, 기본 ECOLI_DATA 테이블과 JOIN한다.
4. 분화된 연도, 연도별 대장균 크기의 편차, 개체의 ID를 SELECT한다.
5. 조건에 맞게 정렬한다.
SELECT B.YEAR, B.MAX - A.SIZE_OF_COLONY AS YEAR_DEV, A.ID
FROM ECOLI_DATA A
JOIN
(
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) AS MAX
FROM ECOLI_DATA
GROUP BY YEAR
) B
ON YEAR(A.DIFFERENTIATION_DATE) = B.YEAR
ORDER BY B.YEAR, YEAR_DEV
'Algorithm > [프로그래머스] - MySQL' 카테고리의 다른 글
[프로그래머스] LV.1 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2024.12.23 |
---|