노아
[프로그래머스] 연도별 대장균 크기의 편차 구하기 본문
Question
분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.
Pseudocode
- 서브쿼리 a 생성:
- ECOLI_DATA 테이블에서 모든 컬럼과 DIFFERENTIATION_DATE의 연도를 추출하여 서브쿼리 a를 생성합니다.
- 서브쿼리 b 생성:
- ECOLI_DATA 테이블에서 DIFFERENTIATION_DATE의 연도별로 최대 SIZE_OF_COLONY를 찾고, 연도와 최대 크기를 포함하는 서브쿼리 b를 생성합니다.
- 연도별로 그룹화합니다.
- 조인 수행:
- 서브쿼리 a와 b를 연도(year)를 기준으로 조인합니다.
- 결과 선택:
- 최종적으로 연도(YEAR), mx_size에서 SIZE_OF_COLONY를 뺀 값(YEAR_DEV), 그리고 id를 선택합니다.
- 정렬:
- 결과를 연도와 YEAR_DEV 기준으로 오름차순 정렬합니다.
Code
select
year(DIFFERENTIATION_DATE) YEAR,
(b.mx_size - SIZE_OF_COLONY) YEAR_DEV,
id
from (
select *, year(DIFFERENTIATION_DATE) year
from ECOLI_DATA) a
join
(select
year(DIFFERENTIATION_DATE) year,
max(SIZE_OF_COLONY) mx_size
from ECOLI_DATA
group by year) b
on a.year = b.year
order by 1, 2
'알고리즘 > SQL' 카테고리의 다른 글
[프로그래머스] 자동차 대여 기록 별 대여 금액 구하기 (0) | 2024.09.20 |
---|---|
[프로그래머스] 대장균의 크기에 따라 분류하기 2 (0) | 2024.09.20 |
[프로그래머스] 조건에 맞는 개발자 찾기 (0) | 2024.09.20 |
[프로그래머스] 특정 세대의 대장균 찾기 (0) | 2024.09.20 |
[프로그래머스] 입양 시각 구하기(2) (2) | 2024.09.20 |