1. 程式人生 > 資料庫 >刷題-資料庫

刷題-資料庫

給定一個 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函式
參考
用於返回兩個日期之間的時間,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