SQL 服务器只检查之前的记录

SQL Server check for prior record only

我有这些列:类型(字符)、日期、价格。 我想看看同类型的价格在之前的记录中是否没有变化

我一开始试过这个:

SELECT *
FROM table t1, table t2
WHERE t1.date > t2.date and t1.type = t2.type

我只想检查之前的日期,而不是每个更小的日期。

这 table 存储价格变化。

product_type change_date price
'A' 2020.02.18 500
'A' 2020.02.20 750
'A' 2020.02.22 800
'B' 2020.02.22 500
'B' 2020.02.27 900
'C' 2020.02.22 400
'C' 2020.02.29 700

我想把这个table放在自己旁边,看看价格是否保持不变:

product_type change_date price product_type change_date price
'A' 2020.02.20 750 'A' 2020.02.18 500
'A' 2020.02.22 800 'A' 2020.02.20 750
'B' 2020.02.27 900 'B' 2020.02.22 500
'C' 2020.02.29 700 'C' 2020.02.22 400

我只想显示没有显示价格变化的行,所以 price = previous price

试试这个:

select 
    t.*, 
    lag(price) over(partition by type order by date) as previous_price 
from table t