티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/299310
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제풀이
1. 먼저 연도별 가장 큰 대장균의 크기(MAX_SIZE)를 구한다.
SELECT MAX(SIZE_OF_COLONY) AS MAX_SIZE, YEAR(DIFFERENTIATION_DATE) AS YEAR
FROM ECOLI_DATA
GROUP BY YEAR
2. 1번 테이블(T)과 ECOLI_DATA 테이블을 조인하여, 각 대장균의 크기 편차를 구한다.
- ECOLI_DATA 테이블에 없는 연도로 조인해야 하므로, LEFT JOIN을 사용하자.
SELECT T.YEAR, (T.MAX_SIZE - SIZE_OF_COLONY) AS YEAR_DEV, ID
FROM ECOLI_DATA E
LEFT JOIN T
ON YEAR(E.DIFFERENTIATION_DATE) = T.YEAR
3. 연도(YEAR)와 편차(YEAR_DEV)로 오름차순 정렬한다.
SELECT T.YEAR, (T.MAX_SIZE - SIZE_OF_COLONY) AS YEAR_DEV, ID
FROM ECOLI_DATA E
LEFT JOIN T
ON YEAR(E.DIFFERENTIATION_DATE) = T.YEAR
ORDER BY T.YEAR, YEAR_DEV; -- 정렬 추가
전체 코드
SELECT T.YEAR, (T.MAX_SIZE - SIZE_OF_COLONY) AS YEAR_DEV, ID
FROM ECOLI_DATA E
LEFT JOIN
(SELECT MAX(SIZE_OF_COLONY) AS MAX_SIZE, YEAR(DIFFERENTIATION_DATE) AS YEAR
FROM ECOLI_DATA
GROUP BY YEAR) T
ON YEAR(E.DIFFERENTIATION_DATE) = T.YEAR
ORDER BY T.YEAR, YEAR_DEV;
'🧩 알고리즘' 카테고리의 다른 글
[Softeer] Lv.2 나무 공격 + 입출력 방법 (0) | 2025.01.27 |
---|---|
[백준] 16235 나무 재테크 - Node.js (0) | 2024.12.01 |
[백준] 15686 치킨 배달 - Node.js (0) | 2024.11.23 |
백준 14503 로봇 청소기 - Node.js (0) | 2024.10.15 |
[백준] 14719 빗물 - node.js (1) | 2023.06.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코딩테스트
- fetch
- 파이썬
- rn
- 코테
- flutter
- Python3
- React
- node.js
- DP
- dfs
- javascript
- 코드분석
- React-native
- Spotify
- 알고리즘
- python
- 코어자바스크립트
- p5js
- nodeJS
- 다이나믹프로그래밍
- backtracking
- 백준
- 이벤트루프
- React.js
- 프로그래머스
- 문제풀이
- 비동기
- Unsplash
- 백트래킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함