2015-05-18 48 views
0

我需要一些建議和幫助,因爲我試圖在SQL SERVER中使用適當的Rank函數進行實驗。排名函數看到出現的值超過1 SQL SERVER

基本上,我想要做的是統計在數據中重複簽訂合同的次數。在Excel,我用Count(A:A;A2)

Cust_Nr Contract Agreement Nr 
5639232 19243062 
10072067 3316516 
10072067 3316516 
5639232 19243062 
20095770 49940680 
10072067 3316516 

我的問題是,是否有使用等級密集功能的排名找出多少次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

那其他行3? –

+2

你確定要'RANK'而不是'COUNT'嗎?因爲聽起來你想要'COUNT'。 –

回答

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 
+0

謝謝。我現在已經學會了在SQL SERVER中使用excel的Countif。 :=)謝謝! –