TSQL数量不同

Ewa*_*Bos 4 sql t-sql select count distinct

我试图从表中获取唯一值,该表将以下内容保存为时间日志文件:

id | time | code | user
1  | 7000 | xxxx | 1 
2  | 7000 | xxxx | 1
3  | 7500 | xxxx | 2
4  | 7000 | xxxx | 3
Run Code Online (Sandbox Code Playgroud)

我想知道的是有多少独特用户在时间使用了代码,例如7000,它应该说2但是我写的不同我得到3

SELECT Time, COUNT(*) as total, Code
FROM dbo.AnalyticsPause
WHERE CODE = 'xxxx'
GROUP BY  id, Time, Code
Run Code Online (Sandbox Code Playgroud)

结果:

time | Count | code 
7000 | 3     | xxxx
7500 | 1     | xxxx
Run Code Online (Sandbox Code Playgroud)

在哪里我想拥有

time | Count | code 
7000 | 2     | xxxx
7500 | 1     | xxxx
Run Code Online (Sandbox Code Playgroud)

我怎样才能在id_user上添加一个独特的并且仍然一直在计算

Mur*_*nik 11

count(*)计算总行数(在组中).你应该只计算distinct user:

SELECT   Time, COUNT(DISTINCT user) as total, Code
FROM     dbo.AnalyticsPause
WHERE    code = 'xxxx'
GROUP BY Time, Code
Run Code Online (Sandbox Code Playgroud)

  • 从`group by`子句中省略`id`,然后它应该工作.`code`也可以从`group by`子句中删除,因为它已经在where子句中使用了. (2认同)