文章目录
- 力扣高频SQL 50题(基础版)第九题
- 197. 上升的温度
- 题目说明
- 思路分析
- 实现过程
- 准备数据
- 实现方式
- 结果截图
- 总结
力扣高频SQL 50题(基础版)第九题
197. 上升的温度
题目说明
Weather
±--------------±--------+
| Column Name | Type |
±--------------±--------+
| id | int |
| recordDate | date |
| temperature | int |
±--------------±--------+
id 是该表具有唯一值的列。
没有具有相同 recordDate 的不同行。
该表包含特定日期的温度信息
编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的 id
。
返回结果 无顺序要求 。
思路分析
找出与昨天相比温度更高的日期id的思路是使用自连接
的方法。
实现过程
准备数据
Create table If Not Exists Weather (id int, recordDate date, temperature int)
Truncate table Weather
insert into Weather (id, recordDate, temperature) values ('1', '2015-01-01', '10')
insert into Weather (id, recordDate, temperature) values ('2', '2015-01-02', '25')
insert into Weather (id, recordDate, temperature) values ('3', '2015-01-03', '20')
insert into Weather (id, recordDate, temperature) values ('4', '2015-01-04', '30')
实现方式
select w2.id ID from Weather w1,Weather w2 where datediff(w2.recordDate,w1.recordDate)=1 and w1.temperature<w2.temperature;
结果截图
总结
时间日期函数datediff(end_date,start_date)函数:时间差
自连接查询语法:select * from 表A t1, 表A t2 where t1.xxid = t2.xxid;