문제 링크
https://leetcode.com/problems/rising-temperature/
문제
어제와 비교해서 온도가 더 높은 날의 id 출력하기
- Keyword : SELF JOIN, 날짜 함수
풀이
1. 날짜 함수 DATEDIFF()를 활용하여 SELF JOIN
- DATEDIFF(date1, date2) : 두 날짜 값 사이의 일수 계산
SELECT A.id
FROM Weather A INNER JOIN Weather B
ON DATEDIFF(A.recordDate, B.recordDate) = 1
WHERE A.temperature > B.temperature;
2. 날짜 함수 DATE_ADD()를 활용하여 SELF JOIN
- DATE_ADD(date, INTERVAL value UNIT) : 날짜에 값만큼 유닛(일, 월, 년 등) 증가
SELECT A.id
FROM Weather A INNER JOIN Weather B
ON A.recordDate = DATE_ADD(B.recordDate, INTERVAL 1 DAY)
WHERE A.temperature > B.temperature;
3. 날짜함수 ADDDATE()를 활용하여 SELF JOIN
- ADDDATE(date, value) : 날짜에 값만큼 일수 증가
- 또는 위와 같이 ADDDATE(date, INTERVAL value UNIT)도 가능
SELECT A.id
FROM Weather A INNER JOIN Weather B
ON A.recordDate = ADDDATE(B.recordDate, 1)
WHERE A.temperature > B.temperature;
📌 SELECT 절에 테이블 Alias 적는 것도 기억하기