(프로그래머스) LV. 2 연도별 대장균 크기의 편차 구하기

chaechae·2024년 3월 28일
0

코딩테스트(SQL) 

목록 보기
22/22
post-thumbnail

간만에 프로그래머스 따끈 따끈한 문제입니다!!

문제

분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.

Code


WITH A as(
        SELECT ID
            , YEAR(DIFFERENTIATION_DATE) AS YEAR
            , SIZE_OF_COLONY
            , MAX(SIZE_OF_COLONY) OVER (PARTITION BY YEAR(DIFFERENTIATION_DATE)) AS MAX_COLONY 
        FROM ECOLI_DATA )
        
SELECT YEAR
    , MAX_COLONY - SIZE_OF_COLONY AS YEAR_DEV
    , ID
FROM A
ORDER BY YEAR,YEAR_DEV

Point

컬럼명이 굉장히 길기 때문에 ㅎㅎ.. 가독성을 위해서 서브쿼리를 이용했습니다.

연도별 대장균 크기의 편차(YEAR_DEV)를 한 테이블안에서 구하기 위해 윈도우 함수를 이용했는데요.🤔 MAX(SIZE_OF_COLONY) OVER (PARTITION BY YEAR(DIFFERENTIATION_DATE)) AS MAX_COLONY 이부분에 해당하는 쿼리입니다.

MAX_COLONYSIZE_OF_COLONY 의 값을 빼줘야 하는데 윈도우 함수를 이용하면
아래의 결과처럼 새로운 테이블이 아닌 기존 테이블 내에서 연도별 MAX_COLONY 컬럼 값을 구할 수 있습니다

profile
게임 혹은 다양한 컨텐츠가 있는 곳을 좋아합니다. 시리즈를 참고하시면 편하게 글을 보실 수 있습니다🫠

0개의 댓글