题目:
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

本文介绍了一种SQL查询技巧,通过自连接的方式找出比前一天温度高的所有日期的ID。使用TO_DAYS函数确保了日期比较的准确性。
217

被折叠的 条评论
为什么被折叠?



