【LeetCode 简单题】50-上升的温度
声明:
今天是第50道题。给定一个 Weather
表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。以下所有代码经过楼主验证都能在LeetCode上执行成功,代码也是借鉴别人的,在文末会附上参考的博客链接,如果侵犯了博主的相关权益,请联系我删除
(手动比心ღ( ´・ᴗ・` ))
正文
题目:给定一个 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 | +---------+------------------+------------------+
例如,根据上述给定的
Weather
表格,返回如下 Id:+----+ | Id | +----+ | 2 | | 4 | +----+
解法1。两表直接关联,用where筛选日期差1天,温度更高的样本Id,还有to_days()函数的用法,耗时540 ms, 在Rising Temperature的MySQL提交中击败了74.45% 的用户,代码如下。
- to_days(date):给出一个日期date,返回一个天数(从公元0年的天数);
select w1.Id from Weather w1, Weather w2 where to_days(w1.RecordDate) - to_days(w2.RecordDate) = 1 and w1.Temperature > w2.Temperature
解法2。两表直接关联,用where筛选日期差1天,温度更高的样本Id,还有datediff()函数的用法,耗时497 ms, 在Rising Temperature的MySQL提交中击败了84.89% 的用户,代码如下。
select w1.Id from Weather w1, Weather w2 where datediff(w1.RecordDate, w2.RecordDate) = 1 and w1.Temperature = w2.Temperature
解法3。两表直接关联,用where筛选日期差1天,温度更高的样本Id,还有subdate()函数的用法,耗时644 ms, 在Rising Temperature的MySQL提交中击败了51.93% 的用户,代码如下。
select w1.Id from Weather w1, Weather w2 where subdate(w1.RecordDate,1) = w2.RecordDate and w1.Temperature > w2.Temperature
结尾
解法1、解法2、解法3:https://blog.csdn.net/wal1314520/article/details/80115738
【LeetCode 简单题】50-上升的温度相关推荐
- LeetCode简单题之温度转换
题目 给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度,以 摄氏度(Celsius)为单位. 你需要将摄氏度转换为 开氏度(Kelvin)和 华氏度(Fahrenheit),并以数组 ...
- LeetCode简单题之基于排列构建数组
题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...
- LeetCode简单题之Excel 表中某个范围内的单元格
题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...
- LeetCode简单题之增量元素之间的最大差值
题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...
- LeetCode简单题之子数组最大平均数 I
题目 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k . 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数. 任何误差小于 10-5 的答案都将被视为正确答案. 示例 ...
- LeetCode简单题之二进制矩阵中的特殊位置
题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...
- LeetCode简单题之设计 Goal 解析器
题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...
- LeetCode简单题之检查两个字符串数组是否相等
题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...
- LeetCode简单题之检查句子中的数字是否递增
题目 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格.每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文 ...
最新文章
- linux的开机网络设置
- Ubuntu 14 查看 docker中对应容器的 IP
- win10电脑安装android,5步教你如何在Win10 PC上安装Android 10
- 计算机参评高校168所,168所大学排行榜单!计算机科学与技术专业哪些高校专业实力最强!...
- 信息学奥赛一本通 1134:合法C标识符 | OpenJudge NOI 1.7 06
- php curl exec ch,PHP curl_exec函数
- 利用5次shift漏洞破解win7密码
- oracle 时间天数计算,oracle计算连续登陆/上班天数
- 使用certbot为nginx站点添加免费ssl证书
- 电脑端微信如何清空聊天记录
- Log与logcat
- arm linux源更新,[Linux] - Manjaro ARM 系统配置(更新镜像源,安装 Docker 和 Dotnet Core)...
- Canvas+html+css+position定位
- chtMultiRegionSimpleFoam求解器的热源不在边界上【翻译】
- 基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server + web server,客户端:Android手机应用)
- python实现科学计数法时间转换
- yagmail 发送html,PYTHON发送邮件YAGMAIL的简单实现解析
- Android基站定位——通过手机信号获取基站信息(一)
- C#毕业设计——基于C#+asp.net+sqlserver的客户关系管理系统设计与实现(毕业论文+程序源码)——客户关系管理系统
- 基于FPGA,快速读取数据,快速压缩数据输出JPEG,可改接口
热门文章
- 书旗app字符串加密分析
- CVE和CVSS计算
- 数据分析的求职前景,你关心的问题都在这!
- c语言中计算一个字母的序数,C语言编程 输入一串字符统计英文字母的个数
- Redis 非线性数据库(一)
- [Expression Blend 4] [SketchFlow系列] Chapter 1 瞭解SketchFlow Map (上)
- IT人员的周报应该怎么写
- 设置百度地图的缩放比例
- 蓄电池维护——蓄电池的日常检测与维护
- 【Spring+Mybatis+SpringMVC整合项目五】天猫商城(后台-订单管理开发)