2014-01-12 35 views
-1
id(PRIMARY KEY)   item 
---      ------- 
1      book 
2      pen 
3      computer 
4      book 
5      pen 
6      mobile 
7      book 

這是主表。我想結果(項目計數> 1)用主鍵對sql server中的重複值進行計數coloumn

ID      ITEM      COUNT 
----     -------     ------- 
1      BOOK       3 
4      BOOK       3 
7      BOOK       3 
2      PEN       2 
5      PEN       2 

我寫的查詢爲:

SELECT ID,ITEM,COUNT(ITEM) 
FROM MAIN 
GROUP by ID,ITEM 
HAVING COUNT(ITEM)>1 
ORDER BY ITEM 

並得到結果爲:

ID      ITEM      COUNT 
----     -------     ------- 
+1

我們爲什麼要出門? – hobbs

+1

鍵盤上的CAPS LOCK鍵卡住了嗎?如果沒有,那麼在美國沒有理由關閉。以全部大寫發佈會讓你的問題更難閱讀,並且它不會讓你更快得到答案(這實在令人討厭和粗魯)。 Shift鍵的存在是有原因的 - 正確使用上下文字母使得文字更容易閱讀。 **用它**。 –

+0

你使用的是MySQL還是SQL Server?標題和標籤不匹配。適當地重新貼上你的問題。 – peterm

回答

0
SELECT m.ID, m.ITEM, m1.`COUNT` 
FROM MAIN m 
JOIN (
    SELECT ITEM, COUNT(*) AS `COUNT` 
    FROM MAIN 
    GROUP BY ITEM 
    HAVING `COUNT` > 1 
    ) m1 
ON m.ITEM = m1.ITEM 
ORDER BY m.ITEM, ID 

你的問題是你在中有ID和。由於ID是唯一的,你從來沒有任何重複。

子查詢用於獲取每個項目的計數。然後,將其與原始表加入,以便可以分別顯示每個ID。