使用多个分组计数

时间:2015-08-18 09:04:59

标签: sql sql-server group-by

我有这张桌子:

+----+-------+------------+
| id |  name |       date |
+----+-------+------------+
| 1  | name1 | 01/01/2015 |
+----+-------+------------+
| 2  | name1 | 01/01/2015 |
+----+-------+------------+
| 3  | name1 | 01/02/2015 |
+----+-------+------------+
| 4  | name2 | 02/14/2015 |
+----+-------+------------+
| 5  | name2 | 02/16/2015 |
+----+-------+------------+
| 6  | name3 | 02/19/2015 |
+----+-------+------------+

我需要我的查询才能返回:

+-------+---+
| name1 | 2 |
+-------+---+
| name2 | 2 |
+-------+---+

所以基本上我需要名字和出现次数,但是1天只计算一次。此外,只有当基于先前标准的计数高于1时,我才需要名称。 试过这样但结果不是我所期待的。我的意思是我手动检查了数字'和

Select
  name, count(id)
From
  table
Group By
  name, date
Having
  Count(id) > 1

1 个答案:

答案 0 :(得分:4)

Select
  name, count(distinct date)
From
  table
Group By
  name
Having
  count(distinct date) > 1