Write an SQL query to find all dates’ Id with higher temperatures compared to its previous dates (yesterday).
Return the result table in any order.
寫一個 SQL Query來尋找比昨日溫度高的所有ID。 可任意排序結果。
Table: Weather
+---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | recordDate | date | | temperature | int | +---------------+---------+ id is the primary key for this table. This table contains information about the temperature on a certain day.
Example 1:
Input: Weather table: +----+------------+-------------+ | id | recordDate | temperature | +----+------------+-------------+ | 1 | 2015-01-01 | 10 | | 2 | 2015-01-02 | 25 | | 3 | 2015-01-03 | 20 | | 4 | 2015-01-04 | 30 | +----+------------+-------------+ Output: +----+ | id | +----+ | 2 | | 4 | +----+ Explanation: In 2015-01-02, the temperature was higher than the previous day (10 -> 25). In 2015-01-04, the temperature was higher than the previous day (20 -> 30).
Solution:
1. 選擇標題 Weather 中的 id。
2. 假設有兩個相同的 Weather 表。
3. 當第一張表的溫度大於第二張表時,且日期相差一天。
Code1:
SELECT w1.id FROM Weather AS w1, Weather AS w2 WHERE w1.temperature > w2.temperature AND DATEDIFF(w1.recordDate, w2.recordDate) = 1;
DATEDIFF():
DATEDIFF(datepart,startdate,enddate)