我试图仅从某个变更数据捕获表中查找所有不同的最新变更。这是桌子的快照。
我尝试使用此查询:
select DISTINCT StudentUSI, sys.fn_cdc_map_lsn_to_time(__$start_lsn) TransactionTime, __$operation Operation, LastModifiedDate from cdc.Student_CT where __$operation in (1,2,4) ORDER BY StudentUSI;
但是返回的结果是:
如果我尝试使用GROOUP BY,它也会显示:
选择列表中的“ cdc.Student_CT .__ $ start_lsn”列无效 因为它既不包含在聚合函数中,也不包含在 GROUP BY子句。
我还有其他方法可以获取有关StudentUSI值的最新更改吗? 谢谢!
答案 0 :(得分:3)
使用row_number()
select * from
(select DISTINCT StudentUSI, sys.fn_cdc_map_lsn_to_time(__$start_lsn) TransactionTime, __$operation Operation, LastModifiedDate ,row_number() over(partition by StudentUSI order by LastModifiedDate desc) as rn
from cdc.Student_CT
where __$operation in (1,2,4))a where rn=1