leetcode-197-上升的温度
前提条件:
表: Weather
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| recordDate | date |
| temperature | int |
+---------------+---------+
id 是该表具有唯一值的列。
没有具有相同 recordDate 的不同行。
该表包含特定日期的温度信息
编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的 id
。返回结果 无顺序要求 。结果格式如下例子所示。
CREATE TABLE Weather (
id INT,
recordDate DATE,
temperature INT
);
INSERT INTO
Weather
VALUES
(1, '2015-01-01', 10),
(2, '2015-01-02', 25),
(3, '2015-01-03', 20),
(4, '2015-01-04', 30);
思路:
- 先笛卡尔积
- 过滤找出日期前后日期相差一天
- 查询
优化:
- 使用连接替代交叉连接
SELECT
w2.id id
FROM
weather w1
JOIN
Weather w2 ON w2.recordDate=DATE_ADD(w1.recordDate,INTERVAL 1 DAY ) AND w1.temperature < w2.temperature;
实现:
-
SELECT * FROM weather w1 CROSS JOIN weather w2;
2.
SELECT
*
FROM
weather w1 CROSS JOIN weather w2
WHERE
DATEDIFF(w2.recordDate,w1.recordDate)=1 ;
3.
SELECT
w2.id id
FROM
weather w1 CROSS JOIN weather w2
WHERE
DATEDIFF(w2.recordDate,w1.recordDate)=1 and w1.temperature<w2.temperature;
分类:
mysql / 刷题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性