簡體   English   中英

如何計算不同的記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM