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;