197. 上升的温度
题目
题目难度:简单
给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。
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 |
例如,根据上述给定的 Weather 表格,返回如下 Id:
Id |
---|
2 |
4 |
解题
datediff(日期1, 日期2)
- 得到的结果是日期1与日期2相差的天数。
- 如果日期1比日期2大,结果为正;如果日期1比日期2小,结果为负。
解题过程:
- 先使用自身连接
- 查询两个查询条件:
(1)W1温度 < W2.温度 //后一天大于前一天
(2)日期差1
SELECT W2.Id
FROM Weather as W1, Weather as W2
WHERE DATEDIFF(W1.RecordDate,W2.RecordDate)=-1 AND
W1.Temperature<W2.Temperature;