꿈은 데이터분석가, 취미는 계획

[MY SQL] 가장 큰 값을 기준으로 편차 구하기 본문

SQL/sql문풀

[MY SQL] 가장 큰 값을 기준으로 편차 구하기

data_2080 2024. 4. 8. 18:43
728x90

출처: [프로그래머스 스쿨 - 코딩테스트 연습 - MY SQL 문제] :  연도별 대장균 크기의 편차 구하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/299310


문제(일부):  ~ 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구함

 

WITH절과 JOIN을 사용한 풀이

1) WITH절에서 연도별 MAX크기 구하기,
2) 연도를 기준을 JOIN하여 편차 구하기(연도별 최대값 - 각 레코드의 크기)

WITH MAX_S AS (
    SELECT MAX(SIZE_OF_COLONY) AS MAX_SIZE
            , YEAR(DIFFERENTIATION_DATE) AS YEAR
    FROM ECOLI_DATA
    GROUP BY YEAR )
    
SELECT M.YEAR
        , (M.MAX_SIZE - E.SIZE_OF_COLONY) YEAR_DEV
        , E.ID
FROM MAX_S M INNER JOIN  ECOLI_DATA E
                    ON YEAR(E.DIFFERENTIATION_DATE) = M.YEAR
WHERE YEAR(E.DIFFERENTIATION_DATE) = M.YEAR
ORDER BY M.YEAR, YEAR_DEV

 

728x90