197-上升的温度
上升的温度
- 题目如下所示
个人题解
这题稍微麻烦一些,因为需要使用到 MySQL 的日期(date)的相关函数,可以自行学习一下,以下为个人思考路程
-
-- 1、建表 CREATE TABLE 197_weather ( id INT PRIMARY KEY, recordDate DATE, temperature INT ); -- 2、分析题目:编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id,返回结果 不要求顺序 -- 2.1、自连接(错误) SELECT w2.id Id from 197_weather w1, 197_weather w2 WHERE w1.id != w2.id AND w1.recordDate = w2.recordDate - 1 AND w1.temperature < w2.temperature; -- 2.2、子查询(错误) SELECT td.id Id from 197_weather td WHERE td.temperature > (SELECT yd.temperature FROM 197_weather yd WHERE yd.recordDate = td.recordDate - 1); -- 这道题的关键在于如何比较日期,找到当天的前一天。以上错误的原因在于直接使用 MySQL 的 date 类型数据直接减一(就算可以减成功,但是当日期月 1 月 1 日时,再减一就查不到 12 月 30 号的日期了) -- 学习 MySQL 的 date 函数的相关用法 -- DATEDIFF 函数(比较两个 date 数据,看它们之间相差的天数) SELECT td.id Id from 197_weather td WHERE td.temperature > (SELECT yd.temperature FROM 197_weather yd WHERE DATEDIFF(td.recordDate, yd.recordDate) = 1); SELECT td.id Id FROM 197_weather td, 197_weather yd WHERE DATEDIFF(td.recordDate, yd.recordDate) = 1 AND td.temperature > yd.temperature;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-07-11 05-Nacos注册中心
2022-07-11 04-Ribbon负载均衡
2022-07-11 03-Eureka注册中心
2022-07-11 02-服务拆分和远程调用
2022-07-11 01-微服务的概念