数据
ID-USER-ROLE-PERM
1 1 1 1
2 1 1 2
3 1 1 3
4 1 1 4
5 1 1 5
6 1 1 6
12 1 1 7
13 1 1 8
9 1 3 1
10 1 3 5
11 1 4 1
14 13 1 8
查询说明:有多少用户将值1视为ROLE
?
结果应为: 2
因为只有用户编号1和13将值1作为ROLE
这是我的错误查询,返回9:
SELECT COUNT(*) FROM assigned_roles WHERE ROLE = 1 GROUP BY ROLE
知道如何返回2吗?
答案 0 :(得分:7)
要计算不同用户的数量,请使用COUNT(DISTINCT USER)
。
此外,您不需要GROUP BY ROLE
,因为您的WHERE
子句确保最多只能有一个组。
SELECT COUNT(DISTINCT USER)
FROM assigned_roles
WHERE ROLE = 1