题目:
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 |
+—-+
Answer:
思路:一表当2表用。注意TO_DAYS()
,日期直接相减是有问题的(详细看这个)。
# Write your MySQL query statement below
SELECT
A2.Id
FROM
weather AS A1,
weather AS A2
WHERE
TO_DAYS( A1.RecordDate ) = TO_DAYS( A2.RecordDate ) - 1
AND A1.Temperature < A2.Temperature