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) | Date(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 | +----+
JOIN
and DATEDIFF()
clause [Accepted]Algorithm
\nMySQL uses DATEDIFF to compare two date type values.
\nSo, we can get the result by joining this table weather with itself and use this DATEDIFF()
function.
MySQL
\nSELECT\n weather.id AS \'Id\'\nFROM\n weather\n JOIN\n weather w ON DATEDIFF(weather.date, w.date) = 1\n AND weather.Temperature > w.Temperature\n;\n