使用主键列计算sql server中的重复值

时间:2014-01-12 06:21:24

标签: mysql sql

id(PRIMARY KEY)          item 
---                     -------  
1                        book
2                        pen
3                        computer
4                        book
5                        pen
6                        mobile
7                        book

这是主要表格。我希望结果(项目计数>> 1)

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 个答案:

答案 0 :(得分: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中同时包含ITEMGROUP BY。由于ID是唯一的,因此您从未有任何重复。

子查询用于获取每个项目的计数。然后将其与原始表格连接,以便您可以单独显示每个ID。