給定一個 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 |
+----+
思路:自連接,條件是日期差1,選出比昨天更高的日期即可。
select A.Id as'Id'
from Weather as A,Weather as B
where DATEDIFF(A.RecordDate, B.RecordDate) = 1 and A.Temperature>B.Temperature;
?