Easy

date2=subdate(date1, 1) datediff(date1,date2)=1 效果一样


Question

Given a Weather table, write a SQL query to find all dates’ Ids with higher temperature compared to its previous (yesterday’s) dates.
+————-+—————————+—————————+
| 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 |
+————-+—————————+—————————+
For example, return the following Ids for the above Weather table:
+——+
| Id |
+——+
| 2 |
| 4 |
+——+

Approach1

select w2.Id from Weather w1 join Weather w2 on w1.RecordDate=subdate(w2.RecordDate,1) where w1.Temperature<= w2.Temperature;

Approach2

select w1.Id from Weather w1 join Weather w2 on datediff(w1.RecordDate,w2.RecordDate)=1 where w1.Temperature> w2.Temperature;