문제
기온이 다음 날보다 더 높은 날짜의 id를 출력하는 문제였다.
문제 풀이
SELECT w1.id
FROM Weather w1
LEFT JOIN Weather w2
ON DATE_SUB(w1.recordDate, INTERVAL 1 DAY) = w2.recordDate
WHERE w1.temperature > w2.temperature;
- Weather 테이블을 자기 자신과 조인한다.
- w1.recordDate - 1 = w2.recordDate 조건으로 오늘과 어제를 연결한다.
- 오늘의 온도가 어제보다 높은 경우만 WHERE 절로 걸러낸다.
w1(오늘) | w2(어제) | w1>w2 |
10 | NULL | 비교 불가 |
25 | 10 | O(25>10) |
20 | 25 | X(20>25) |
30 | 20 | O(30>20) |
'코딩테스트 > LeetCode' 카테고리의 다른 글
[LeetCode/MySQL]577. Employee Bonus (0) | 2025.05.09 |
---|---|
[LeetCode/MySQL]511. Game Play Analysis I (0) | 2025.05.04 |
[LeetCode/MySQL]196. Delete Duplicate Emails (0) | 2025.05.04 |
[LeetCode/MySQL]183. Customers Who Never Order (0) | 2025.05.04 |
[LeetCode/MySQL]182. Duplicate Emails (0) | 2025.05.02 |