2016-11-28 116 views
0

請考慮表Property結果集中已應用不同結果的列的計數

KeyIdNum|Property|IdNum 
1   12  1234 
1   12  1234  
1   44  1234 
1   12  1234 
1   56  1234 
2   12  4567 
3   12  6789 
3   56  6789 
3   12  6789 
4   44  3434 
5   12  4444 
6   44  9999 
6   44  9999 

它包含與每個id num相關的屬性num,但它包含重複項。我申請了distinct以避免重複。

select distinct KeyIdNum,Property,IdNum from Property. 

,所以我得到的結果爲:

KeyIdNum |Property |IdNum 
1   12   1234 
1   44   1234 
1   56   1234 
2   12   4567 
3   12   6789 
3   56   6789 
4   44   3434 
5   12   4444 
6   44   9999 

但現在我想`選擇(應用不同之後),這是未來的一個以上的時間在不同的KeyIdNum(或IDNUM)結果集如上所示。 請幫我解決這個問題。我無法找到一種方法來使用單個查詢獲取不同結果集中列的計數。

+0

有望走出放應 – Chanukya

+0

感謝編輯我的問題以適當的格式。請讓我知道,如何提供這種格式的問題? –

+0

我刪除了所有這些dbms標籤。隨意添加其中一個回來。 – jarlh

回答

0
select KeyIdNum,count(KeyIdNum) as count 
From (
select distinct KeyIdNum,Property,IdNum from Table19)A 
group by KeyIdNum 

輸出

KeyIdNum count 
1   3 
2   1 
3   2 
4   1 
5   1 
6   1 
+0

非常感謝您的回答 –

1

以下查詢將產生KeyidNum,它的行數。

select KeyIdNum,count(KeyIdNum) 
 
From (
 
select distinct KeyIdNum,Property,IdNum from Property) 
 
group by KeyIdNum

+0

謝謝你提供的答案。但是,當我嘗試了同樣的確切查詢時,我得到了一個錯誤,因爲「派生表表達式缺少相關名稱」。但是當我在from子句中選擇查詢後給出名稱時,問題得以解決。非常感謝您的回覆 –

0

這個答案使用T-SQL:

SELECT x 
FROM (SELECT * , 
        rn = rownumber() OVER (PARTITION BY keyidnum, idnum 
              ORDER BY keyidnum, idnum) 
      FROM  tblProperty 
     ) x 
WHERE rn > 1