Jane_X

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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 

 

posted on 2018-02-18 21:10  Jane_X  阅读(166)  评论(0)    收藏  举报