LeetCode--197.上升的温度

文章目录

  • 1 题目描述
  • 2 解题思路
    • 2.1 代码实现

1 题目描述

表:  Weather

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| recordDate    | date    |
| temperature   | int     |
+---------------+---------+

id 是该表具有唯一值的列, 该表包含特定日期的温度信息
编写解决方案, 找出与之前(昨天的)日期相比温度更高的所有日期的 id
返回结果 无顺序要求

结果格式如下例子所示

**示例 1: **
**输入: **
Weather 表:

+----+------------+-------------+
| id | recordDate | Temperature |
+----+------------+-------------+
| 1  | 2015-01-01 | 10          |
| 2  | 2015-01-02 | 25          |
| 3  | 2015-01-03 | 20          |
| 4  | 2015-01-04 | 30          |
+----+------------+-------------+

**输出: **

+----+
| id |
+----+
| 2  |
| 4  |
+----+

**解释: **
2015-01-02 的温度比前一天高(10 -> 25)
2015-01-04 的温度比前一天高(20 -> 30)

2 解题思路

  1. 使用 SUBDATE() 函数, 查找前 n 天的日期, 函数使用文档
  2. 题目要求是, 当前时间 与 前一天 数据对比, 最开始是想用 LAG() 函数对比当前和上一天数据, 上一条数据的日期 不等同于 前一天

2.1 代码实现

a.recorddate = subdate(b.recorddate, 1) 查找当前日期 和 前一天

select b.id from Weather a,  Weather b 
where a.recorddate = subdate(b.recorddate,  1) 
and b.temperature > a.temperature

你可能感兴趣的:(MySQL,LeetCode,leetcode,mysql)