我希望从MS SQL数据库中发现NAME
的唯一唯一事件,但是对于每个用户来说只能一次。以下是我的数据示例。
USERID NAME
------------------------
1 name 1
1 name 1
1 name 1
2 name 1
2 name 2
2 name 3
3 name 1
3 name 1
3 name 3
4 name 1
如果我使用以下查询
SELECT COUNT(name) AS total, name FROM TestTable GROUP BY name
我得到以下结果
7 name 1
1 name 2
2 name 3
但是我想要的是下面的结果。该查询应忽略用户1的2x name 1
和用户3的1x name 1
。
4 name 1
1 name 2
2 name 3
我对SQL的知识不足,无法使其正常工作,或者不知道要在查询中使用的正确术语。因此,可能有重复项,如果有,请指向我。
答案 0 :(得分:4)
使用distinct
和count()
用户ID
SELECT COUNT(distinct userid) AS total, name FROM TestTable GROUP BY name
答案 1 :(得分:4)
您可以为count()
SELECT COUNT(distinct userid) AS total, name FROM TestTable GROUP BY name
答案 2 :(得分:1)
您希望DISTINCT
中的COUNT()
忽略重复计数:
SELECT COUNT(DISTINCT USERID) AS total, name
FROM TestTable
GROUP BY name;