문제
https://school.programmers.co.kr/learn/courses/30/lessons/299310
풀이(20분)
SELECT YEAR(D.DIFFERENTIATION_DATE) AS YEAR, F.MV-D.SIZE_OF_COLONY AS YEAR_DEV, D.ID
FROM ECOLI_DATA AS D LEFT OUTER JOIN (
SELECT YEAR(E.DIFFERENTIATION_DATE) AS YEAR, MAX(E.SIZE_OF_COLONY) AS MV
FROM ECOLI_DATA AS E
GROUP BY YEAR(E.DIFFERENTIATION_DATE)
) AS F
ON YEAR(D.DIFFERENTIATION_DATE) = F.YEAR
ORDER BY YEAR, YEAR_DEV
서브쿼리 먼저 분석해보자.
YEAR 연산은 날짜를 포함한 데이터에서 연도만 추출해주는 메서드이다. 이를 통해 YEAR과 해당 연도의 최대 값을 갖는 테이블을 만든다. 여기서 YEAR을 기준으로 조인을 하고 편차를 구하여 출력만 해주면 되는 문제이다.
sql 자체에 대한 이해력과 연습만 있다면 충분히 풀 수 있는 문제일 것 같다.
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 뒤에 있는 큰 수 찾기(JAVA) (0) | 2025.01.15 |
---|---|
[프로그래머스] 택배 배달과 수거하기(JAVA) (0) | 2024.11.21 |
[프로그래머스] 석유 시추(JAVA) (1) | 2024.11.21 |
[프로그래머스] 두 원 사이의 정수 쌍(JAVA) (0) | 2024.11.20 |
[프로그래머스] 진료과별 총 예약 횟수 출력하기(SQL) (0) | 2024.11.20 |