197. Rising Temperature
Description
Given a Weather
table, write a SQL query to find all dates'
Ids with higher temperature compared to its previous (yesterday's) dates.
+---------+------------------+------------------+ | Id(INT) | RecordDate(DATE) | Temperature(INT) | +---------+------------------+------------------+ | 1 | 2015-01-01 | 10 | | 2 | 2015-01-02 | 25 | | 3 | 2015-01-03 | 20 | | 4 | 2015-01-04 | 30 | +---------+------------------+------------------+
For example, return the following Ids for the above
Weather
table:
+----+ | Id | +----+ | 2 | | 4 | +----+
My Solution
Source Code
1
2
3
4
5
SELECT w1.Id AS 'Id'
FROM Weather AS w1, Weather AS W2
WHERE DATEDIFF(day, w2.RecordDate, w1.RecordDate) = 1
AND
w1.Temperature > w2.Temperature
Analysis
All we're doing here is using DATEDIFF() to determine which dates are consecutive.