繁体   English   中英

计算SQL中按条件分组的行

[英]Count rows grouped by condition in SQL

我们有一个这样的表:

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

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

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

我们没有计算Id = 3的那个人,因为他只有1个项目。

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

SELECT id, COUNT(itemId) AS ItemCount 
FROM YourTable 
GROUP BY id 
HAVING COUNT(itemId) > 1
SELECT id,
       count(1)
FROM   YOUR_TABLE
GROUP  BY id
HAVING count(1) > 1; 

使用此查询

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

my_select
WHERE COUNT>1
select Id, count(ItemId) as ItemCount
   from table_name 
   group by Id 
   having ItemCount > 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM