2

我们有一个这样的表:

+----+--------+
| Id | ItemId |
+----+--------+
| 1  | 1100   |
| 1  | 1101   |
| 1  | 1102   |
| 2  | 2001   |
| 2  | 2002   |
| 3  | 1101   |
+----+--------+

我们想计算每个人有多少物品,并显示有 2 件或更多物品的人。像这样:

+----+-----------+
| Id | ItemCount |
+----+-----------+
| 1  | 3         |
| 2  | 2         |
+----+-----------+

我们没有计算 ID = 3 的人,因为他只有一件物品。

我们如何在 SQL 中做到这一点?

4

4 回答 4

3
SELECT id, COUNT(itemId) AS ItemCount 
FROM YourTable 
GROUP BY id 
HAVING COUNT(itemId) > 1
于 2013-06-22T12:06:44.947 回答
1
SELECT id,
       count(1)
FROM   YOUR_TABLE
GROUP  BY id
HAVING count(1) > 1; 
于 2013-06-22T12:04:58.097 回答
1

使用此查询

SELECT *
FROM (    
    SELECT COUNT(ItemId ) AS COUNT, Id FROM ITEM 
    GROUP BY Id 
) 

my_select
WHERE COUNT>1
于 2013-06-22T12:06:18.110 回答
0
select Id, count(ItemId) as ItemCount
   from table_name 
   group by Id 
   having ItemCount > 1
于 2013-06-22T12:05:04.247 回答