[英]How to count distinct records
有人可以幫助我使用 SQL 命令嗎?
我有一個包含以下數據的表 (tbl_sActivity):
用戶 ID | client_id | act_status |
1 | 7 | 冷 |
1 | 7 | 成交 |
22 | 5 | 冷 |
1 | 6 | 冷 |
1 | 6 | 溫暖 |
1 | 6 | 熱 |
1 | 6 | 成交 |
1 | 8 | 溫暖 |
1 | 8 | 成交|
21 | 4 | 溫暖 |
21 | 4 | 成交 |
輸出應該是
用戶 ID | Count_C_id |
1 | 3 |
21 | 1 |
22 | 1 |
我從網上搜索並了解到 MS ACCESS 不能使用 COUNT(DISTINCT) 函數。 所以我被困在這個階段好幾天了。
試試這個。 “技巧”是首先使用子查詢來獲取用戶和客戶端 ID 的所有不同組合,然后對每個用戶進行分組:
SELECT
user_id
, COUNT(*) AS count_distinct_clients
FROM
( SELECT DISTINCT
user_id,
client_id
FROM tbl_sActivity
) AS tmp
GROUP BY
user_id ;
建議是在不使用子查詢的情況下進行查詢。
請找到下面的代碼,它會比子查詢更快更准確。
// 臨時表
CREATE TABLE #TempStudent(userId int, c_id int , Name varchar(MAX) )
SELECT max(userid) as UserId, count(c_id) as C_ID from #TempStudent
GROUP BY userId
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.