197. Rising Temperature

来源:互联网 发布:菏泽教务网络管理系统 编辑:程序博客网 时间:2024/06/06 08:22
  1. Rising Temperature
    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) | Date(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:

SELECT w1.Id FROM Weather w1, Weather w2WHERE TO_DAYS(w1.Date) = TO_DAYS(w2.Date)+1 AND w1.Temperature > w2.TemperatureSELECT w1.Id FROM Weather w1 INNER JOIN Weather w2 ONTO_DAYS(w1.Date) = TO_DAYS(w2.Date) + 1 AND w1.Temperature > w2.TemperatureSELECT w1.Id FROM Weather w1 JOIN Weather w2 ONDATEDIFF(w1.Date, w2.Date) = 1 AND w1.Temperature > w2.Temperature

DATEDIFF
DATEDIFF(date1,date2)
date1 和 date2 参数是合法的日期或日期/时间表达式。
只有值的日期部分参与计算。

SELECT DATEDIFF(‘2008-12-30’,’2008-12-29’) AS DiffDate
结果:
DiffDate: 1

SELECT DATEDIFF(‘2008-12-29’,’2008-12-30’) AS DiffDate
结果:
DiffDate: -1

原创粉丝点击