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 | +----+
要点:
- 比较同一个表中上下两行数据 解法:使用自连接
- 日期函数 datediff(date1,date2) #date1-date2
SELECT Weather.Id as Id FROM Weather JOIN Weather w ON datediff(Weather.Date,w.Date)=1 AND w.Temperature<Weather.Temperature