https://school.programmers.co.kr/learn/courses/30/lessons/299310
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제]
분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.
[나의 풀이]
SELECT
YEAR(DIFFERENTIATION_DATE) YEAR,
(SELECT MAX(SIZE_OF_COLONY)
FROM ECOLI_DATA A
WHERE YEAR(A.DIFFERENTIATION_DATE) = YEAR(B.DIFFERENTIATION_DATE)
GROUP BY YEAR(A.DIFFERENTIATION_DATE)
)-SIZE_OF_COLONY YEAR_DEV,
ID
FROM ECOLI_DATA B
ORDER BY YEAR, YEAR_DEV;
[다른 풀이]
window 함수를 이용한 경우
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, YEAR_DEV;
'프로그래머스 > My SQL' 카테고리의 다른 글
없어진 기록 찾기 (0) | 2024.11.22 |
---|---|
부모의 형질을 모두 가지는 대장균 찾기 (0) | 2024.11.21 |
분기별 분화된 대장균의 개체 수 구하기 (0) | 2024.11.20 |
월별 잡은 물고기 수 구하기 (0) | 2024.11.19 |
특정 물고기를 잡은 총 수 구하기 (0) | 2024.11.16 |