刷題-資料庫
阿新 • • 發佈:2020-02-28
給定一個 Weather 表,編寫一個 SQL 查詢,來查詢與之前(昨天的)日期相比溫度更高的所有日期的 Id。
±--------±-----------------±-----------------+
| Id(INT) | RecordDate(DATE) | Temperature(INT) |
±--------±-----------------±-----------------+
| 1 | 2015-01-01 | 10 |
| 2 | 2015-01-02 | 25 |
| 3 | 2015-01-03 | 20 |
±--------±-----------------±-----------------+
例如,根據上述給定的 Weather 表格,返回如下 Id:
±—+
| Id |
±—+
| 2 |
| 4 |
datediff函式
參考
用於返回兩個日期之間的時間,datediff函式前面減去後面
官方的答案是使用顯式內連線,我感覺使用標準sql也是可以的
select w1.Id from Weather w1,Weather w2 where DATEDIFF(w1.RecordDate,w2.RecordDate) = 1 and w2.Temperature < w1.Temperature
官方答案
SELECT
weather.id AS ‘Id’
FROM
weather
JOIN
weather w ON DATEDIFF(weather.date,w.date) = 1
AND weather.Temperature > w.Temperature