https://school.programmers.co.kr/learn/courses/30/lessons/299310
문제 설명
- Lv 2 문제
- 분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 출력
- 분화된 연도별 대장균 크기의 편차(YEAR_DEV) = (분화된 연도별 가장 큰 대장균의 크기) - (각 대장균의 크기)
- 결과는 연도 기준으로 오름차순, 연도가 같으면 대장균 크기의 편차 기준으로 오름차순 정렬
문제 풀이
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR,
(MED.MAX_SIZE - ED.SIZE_OF_COLONY) AS YEAR_DEV,
ID
FROM ECOLI_DATA ED JOIN (SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR,
MAX(SIZE_OF_COLONY) AS MAX_SIZE
FROM ECOLI_DATA
GROUP BY YEAR(DIFFERENTIATION_DATE)) MED
ON YEAR(ED.DIFFERENTIATION_DATE) = MED.YEAR
ORDER BY YEAR, YEAR_DEV;
◼️서브쿼리로 연도별로 분화된 대장균 중 가장 큰 대장균의 크기 구하기
- 연도로 그룹화하고, MAX 함수로 가장 큰 대장균의 크기를 구한다.
- YEAR 함수로 DIFFERENTIATION_DATE 칼럼에서 연도 추출
◼️ 두 테이블을 JOIN 해서 연도별 대장균 크기의 편차 구하기
- ECOLI_DATA 테이블과 테이블을 INNER JOIN 한다.
- 조인 조건은 두테이블의 YEAR 칼럼이 같다.
- JOIN 후, (MED.MAX_SIZE) - (ED.SIZE_OF_COLONY) 로 연도별 대장균 크기의 편차를 구한다.
◼️ ORDER BY YEAR 기준 오름차순, YEAR_DEV 기준 오름차순 정렬
'PS > SQL' 카테고리의 다른 글
[프로그래머스][SQL] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.06.25 |
---|---|
[프로그래머스][SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.06.19 |
[프로그래머스][SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.06.18 |
[프로그래머스][SQL] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.06.18 |
[프로그래머스][SQL]업그레이드 할 수 없는 아이템 구하기 (0) | 2024.06.11 |