给定一个 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
2
3
4
5
6
7
8
9
10
11
--方法一:直接使用表自身连接
select A.Id
from Weather A join Weather B
on A.RecordDate = B.RecordDate
where A.Temperature > B.Temperature

--方法二:使用偏移分析函数 根据日期(Date类型)排序(id和日期可能不是对应的)
select id from
(select id,Temperature,lag(Temperature,1,null)over(order by RecordDate) last_Temperature,
RecordDate,lag(RecordDate,1,null)over(order by RecordDate) last_RecordDate
from Weather) A where A.Temperature>A.last_Temperature and A.last_RecordDate=A.RecordDate