我在SQL SERVER
尝试使用适当的Rank函数时需要一些建议和帮助。
基本上,我想要做的是计算合同协议在数据中重复的次数。在Excel
中,我使用了Count(A:A;A2)
Cust_Nr Contract Agreement Nr
5639232 19243062
10072067 3316516
10072067 3316516
5639232 19243062
20095770 49940680
10072067 3316516
我的问题是,有没有一种方法可以使用Rank of Rank Dense函数来计算出contract agreement Nr
多次出现的次数?例如,contract agreement nr:3316516
出现两次。我想要另一个列显示:
Cust_Nr Contract Agreement Nr Duplicate
5639232 19243062
10072067 3316516 3
10072067 3316516 3
5639232 19243062
20095770 49940680
10072067 3316516 3
因此contract agreement nr 3316516
在数据中共出现3次。
我该怎么做?
答案 0 :(得分:2)
使用此功能,无需排名:
select *, count(*) over (partition by [Contract Agreement Nr]) as RowsPerContractNumber
from MyTable
编辑:如果您希望非重复行为空白,请使用:
select *
, case count(*) over (partition by [Contract Agreement Nr])
when 1 then ''
else cast(count(*) over (partition by [Contract Agreement Nr]) as varchar)
end
as RowsPerContractNumber
from MyTable