197. Rising Temperature

  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 w2
WHERE TO_DAYS(w1.Date) = TO_DAYS(w2.Date)+1 AND w1.Temperature > w2.Temperature

SELECT w1.Id FROM Weather w1 INNER JOIN Weather w2 ON
TO_DAYS(w1.Date) = TO_DAYS(w2.Date) + 1 AND w1.Temperature > w2.Temperature

SELECT w1.Id FROM Weather w1 JOIN Weather w2 ON
DATEDIFF(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值