题目描述
给定一个 Weather
表,编写一个 SQL
查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id
。
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 |
例如,根据上述给定的 1Weather1 表格,返回如下 Id:
Id |
---|
2 |
4 |
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rising->temperature
著作权归领扣网络所有。商业转载请联系官方授权,非商业转>载请注明出处。
解决思路
- 先将
Weather
于自身进行链接 , 链接的条件为右表的时间比左表的时间多一天 且 右表的温度比左表的更高. Date
类型的时间天数差使用DATEIFF
函数计算 , 其结果为第一个参数表示的时间减去第二个参数表示的时间.select
从链接的表中选择Id
即可.
实现代码
SELECT
w.Id
FROM
Weather
JOIN
Weather w
ON
DATEDIFF(w.date, Weather.date) = 1
AND w.Temperature > Weather.Temperature;