热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

温度上升—mysql变量使用

表: Weather+---------------+---------+|ColumnName|Type|+---------------+---------+|id|int||

表: Weather

+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| recordDate | date |
| temperature | int |
+---------------+---------+
id 是这个表的主键
该表包含特定日期的温度信息
 

编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 。

返回结果 不要求顺序 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rising-temperature
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

Mysql解法:

1.变量解法

select

    Id

from

    (select w.*,

     @curd := w.RecordDate,       #当前日期

     @curt := w.Temperature,       #当前温度

     @isH := if(datediff(@curd,@pred) = 1 and @curt > @pret,1,0) as r,               #当当前日期比前一个日期大一天时,且当前温度大于昨日温度 为真

     @pret := @curt,  #赋值昨日 日期     

     @pred := @curd  #赋值昨日温度 

   #这五个变量赋值顺序很重要  !!  前两个步骤负责赋值今日数据,判断真假 在赋值给昨日   

#这样每一行数据进来先判断当日数据是否比昨日温度大 然后将当日数据赋值给昨日的变量   

     from

        Weather w,

        (select 

            @curd := null,

            @pred := null,

            @curt := 0,

            @pret := 0,

            @isH := 0

        ) init

   #初始化变量

     order by w.RecordDate     #order by先于select执行    先排序在查询  确保日期又近到远

    ) t

where

    t.r = 1

 



推荐阅读
author-avatar
安小辰
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有