https://school.programmers.co.kr/learn/courses/30/lessons/299310
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 문제 :
분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.
- 풀이 :
- MySQL
- 내부 서브쿼리에서 연도별 최대 대장균 크기를 계산
- 메인 쿼리에서 서브쿼리와 조인하여 각 개체의 크기 편차를 계산
-- ECOLI_DATA : ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE
SELECT
YEAR(DIFFERENTIATION_DATE) AS YEAR,
MAX_SIZE - SIZE_OF_COLONY AS YEAR_DEV,
ID
FROM
ECOLI_DATA
JOIN (
SELECT
YEAR(DIFFERENTIATION_DATE) AS YEAR,
MAX(SIZE_OF_COLONY) AS MAX_SIZE
FROM
ECOLI_DATA
GROUP BY
YEAR(DIFFERENTIATION_DATE)
) AS max_sizes ON YEAR(ECOLI_DATA.DIFFERENTIATION_DATE) = max_sizes.YEAR
ORDER BY
YEAR ASC,
YEAR_DEV ASC;
반응형
'IT > SQL 테스트' 카테고리의 다른 글
[IS NULL] 이름이 없는 동물의 아이디 (0) | 2025.02.21 |
---|---|
[IS NULL] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2025.02.21 |
[SUM, MAX, MIN] 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (MySQL) (2) | 2025.02.06 |
[SUM, MAX, MIN] 물고기 종류 별 대어 찾기 (MySQL) (0) | 2025.02.06 |
[SUM, MAX, MIN] 조건에 맞는 아이템들의 가격의 총합 구하기 (MySQL) (2) | 2025.02.06 |