web-dev-qa-db-ja.com

TSQLカウントが異なります

テーブルから一意の値を取得しようとしています。テーブルには次のものがタイムログファイルとして保持されています。

id | time | code | user
1  | 7000 | xxxx | 1 
2  | 7000 | xxxx | 1
3  | 7500 | xxxx | 2
4  | 7000 | xxxx | 3

私が知りたいのは、一度に何人のユニークユーザーがコードを使用したかです。 7000、それは2と言う必要がありますが、明確に書くと3になります

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

結果:

time | Count | code 
7000 | 3     | xxxx
7500 | 1     | xxxx

私が欲しい場所

time | Count | code 
7000 | 2     | xxxx
7500 | 1     | xxxx

Id_userに個別を追加し、それでも常に一緒にカウントするにはどうすればよいですか

5
Ewald Bos

count(*)は、(グループ内の)行の総数をカウントします。代わりに、distinct user

SELECT   Time, COUNT(DISTINCT user) as total, Code
FROM     dbo.AnalyticsPause
WHERE    code = 'xxxx'
GROUP BY Time, Code
5
Mureinik