题目描述
给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。
解答
这里考察几个知识点
- SELECT…FROM…的用法。
- CROSS JOIN…(交叉联结)的用法。
- timestampdiff(时间类型, 日期1, 日期2):当日期1大于日期2,结果为负,日期1小于日期2,结果为正。datediff(日期1, 日期2):当日期1比日期2大,结果为正;如果日期1比日期2小,结果为负。
SELECT a.Id FROM weather AS a CROSS JOIN weather AS b
ON timestampdiff(day, a.RecordDate, b.RecordDate) = -1 ##前面的日期比后面的日期大1
WHERE a.Temperature > b.Temperature;