Function 如何在scd2中获得imortant fow版本?

Function 如何在scd2中获得imortant fow版本?,function,window,scd2,Function,Window,Scd2,嗨,我有一个数据集,它有一行的不同版本 customer有一个customer_id和一些属性,我只想收集对“last”行有重大更改的fow [在此处输入图像描述][1] > version of row id ref important change unimportant change is_important 1 1 xyz 1 2 yes 2 1 xyz 1 3 no

嗨,我有一个数据集,它有一行的不同版本

customer有一个customer_id和一些属性,我只想收集对“last”行有重大更改的fow

[在此处输入图像描述][1]

> version of row    id  ref important change    unimportant change  is_important
1   1   xyz 1   2   yes
2   1   xyz 1   3   no
                    
                    
3   1   xyz 2   1   yes
4   1   xyz 1   4   yes
                    
                    
5   1   xyz 4   1   yes
所以如果我使用一个常规的滞后函数(窗口函数),我当然会得到 版本1 版本3 版本4 版本5 版本6

到目前为止还不错

但是如果我想说版本1是我的第一行 我想在一定的时间范围内,将该行之后的所有行与该行进行比较,只取与第一行不同的最新行-嗯,我怎么能这样做

因此,如果我使用较短的时间,我将收集第4行,然后将其与下一行进行比较,然后将第5版作为一个重大更改(而不是第6版),因为第6版在重要字段上没有与第4版进行更改

如果我要花更长的时间,我会有版本1,并将所有其他版本与之进行比较,然后采用最新版本,在重要的领域我会得到版本5

请理解我的意思,我想有一个移动的窗口,比较所有版本内,并采取后者不同于最后一个重要的版本

当然,我可以使用ETL工具,也可以使用一些SP(存储过程),但目标应该是使用1SQL

thx