在两个字段上使用group by并在SQL中计数

时间:2012-04-30 09:03:03

标签: mysql sql

我的mysql数据库中有一个表,它有两列:group和subgroup。见下文。

 group, subGroup
 grp-A, sub-A
 grp-A, sub-A
 grp-A, sub-B      
 grp-B, sub-A
 grp-B, sub-B
 grp-B, sub-B

我正在尝试获取每个唯一情侣组/子组的记录数。

这就是我的期望:

group, subGroup, count
grp-A, sub-A, 2
grp-A, sub-B, 1
grp-B, sub-A, 1
grp-B, sub-B, 2

在阅读了一些帖子之后,我尝试了使用group by,count()的几个sql查询,但是我无法获得预期的结果。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:121)

我认为您正在寻找:SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b

答案 1 :(得分:7)

您必须对列,组和子组进行分组,然后使用聚合函数COUNT()

SELECT
  group, subgroup, COUNT(*)
FROM
  groups
GROUP BY
  group, subgroup

答案 2 :(得分:6)

SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup

答案 3 :(得分:0)

我想要另一种情况,每个组的sugroup计数,所以这是查询SELECT a,b,COUNT(distinct b)FROM tbl GROUP BY a