728x90
1. 문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/299310
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
2. 문제
분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.
3. 풀이
연도별 군집데이터를 보기위해 서브쿼리가 필요하다
이떄
SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR
,( SELECT MAX(SIZE_OF_COLONY)
FROM ECOLI_DATA
WHERE YEAR(DIFFERENTIATION_DATE) = YEAR)
- SIZE_OF_COLONY AS YEAR_DEV
, ID
FROM ECOLI_DATA
ORDER BY YEAR, YEAR_DEV
SELECT문에 사용하면 쿼리가 직관적으로 할수있다 -> 단 데이터가 많을수록 비효율적일것이다
SELECT YEAR(A.DIFFERENTIATION_DATE) YEAR
, ABS(A.SIZE_OF_COLONY - B.MAX_SIZE) YEAR_DEV
, A.ID
FROM ECOLI_DATA A
LEFT JOIN (
SELECT YEAR(A.DIFFERENTIATION_DATE) YEAR
, MAX(A.SIZE_OF_COLONY) MAX_SIZE
FROM ECOLI_DATA A
GROUP BY YEAR(A.DIFFERENTIATION_DATE)) B
ON YEAR(A.DIFFERENTIATION_DATE) = B.YEAR
ORDER BY YEAR, YEAR_DEV
FROM에서 서브쿼리를 사용하면 추후 데이터가 많을떄 좀더 좋읈듯?!
이대 ABS는 절대값을 구하기위해 입력
728x90
'문제풀이 > SQL' 카테고리의 다른 글
물고기 종류 별 대어 찾기 (0) | 2025.06.08 |
---|---|
잡은 물고기 중 가장 큰 물고기의 길이 구하기 (0) | 2025.06.08 |
가장 큰 물고기 10마리 구하기 (0) | 2024.04.17 |
조건에 맞는 개발자 찾기 (0) | 2024.04.17 |
잔챙이 잡은 수 구하기 (0) | 2024.04.06 |
댓글