[프로그래머스 SQL] Lv.2 - 연도별 대장균 크기의 편차 구하기

2025. 3. 17. 14:31·SQL/SUM, MAX, MIN

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문제 풀이 1 (GROUP BY 사용)

  1. 기존 ECOLI_DATA 테이블과 연도별로 그룹핑한 뒤 연도별 최대 대장균 크기를 조회하는 서브 쿼리 테이블을 조인한다.
  2. 연도와 서브 쿼리의 연도별 최대 대장균 크기 - 각 대장균의 크기, 대장균 ID를 조회한다.
  3. 연도를 기준으로 오름차순, 대장균 크기의 편차를 기준으로 오름차순 정렬한다.
SELECT
    YEAR(A.DIFFERENTIATION_DATE) AS YEAR,
    (B.MAX_SIZE - A.SIZE_OF_COLONY) AS YEAR_DEV,
    A.ID
FROM
    ECOLI_DATA AS A
    JOIN (
        SELECT 
            YEAR(DIFFERENTIATION_DATE) AS YEAR,
            MAX(SIZE_OF_COLONY) AS MAX_SIZE
        FROM
            ECOLI_DATA
        GROUP BY
            YEAR(DIFFERENTIATION_DATE)
    ) AS B ON YEAR(A.DIFFERENTIATION_DATE) = B.YEAR
ORDER BY
    1, 2

 

문제 풀이 2 (PARTITION BY 사용)

  1. PARTITION BY 키워드로 연도별 최대 대장균 크기를 조회하는 서브 쿼리 테이블을 만든다.
  2. 연도와 서브 쿼리의 연도별 최대 대장균 크기 - 각 대장균의 크기, 대장균 ID를 조회한다.
  3. 연도를 기준으로 오름차순, 대장균 크기의 편차를 기준으로 오름차순 정렬한다.
SELECT
    YEAR(DIFFERENTIATION_DATE) AS YEAR,
    (MAX_SIZE - SIZE_OF_COLONY) AS YEAR_DEV,
    ID
FROM
    (
        SELECT *, MAX(SIZE_OF_COLONY) OVER (PARTITION BY YEAR(DIFFERENTIATION_DATE)) AS MAX_SIZE
        FROM ECOLI_DATA
    ) AS A
ORDER BY
    1, 2

'SQL > SUM, MAX, MIN' 카테고리의 다른 글

[프로그래머스 SQL] Lv.3 - 물고기 종류 별 대어 찾기  (0) 2025.03.17
[프로그래머스 SQL] Lv.2 - 조건에 맞는 아이템들의 가격의 총합 구하기  (0) 2025.03.14
[프로그래머스 SQL] Lv2. - 중복 제거하기  (0) 2025.03.14
[프로그래머스 SQL] Lv.2 - 동물 수 구하기  (0) 2025.03.14
[프로그래머스 SQL] Lv.2 - 최솟값 구하기  (0) 2025.03.14
'SQL/SUM, MAX, MIN' 카테고리의 다른 글
  • [프로그래머스 SQL] Lv.3 - 물고기 종류 별 대어 찾기
  • [프로그래머스 SQL] Lv.2 - 조건에 맞는 아이템들의 가격의 총합 구하기
  • [프로그래머스 SQL] Lv2. - 중복 제거하기
  • [프로그래머스 SQL] Lv.2 - 동물 수 구하기
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데브코스
    JPA
    raid
    자바
    오블완
    스프링
    티스토리챌린지
    백엔드 면접
    토스 페이먼츠
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
[프로그래머스 SQL] Lv.2 - 연도별 대장균 크기의 편차 구하기
상단으로

티스토리툴바