簡體   English   中英

MYSQL忽略重復值並獲得唯一計數

[英]MYSQL Ignore Repeat Values and Get Unique Count

基本上,正如問題所指出的那樣,我正在尋找基於唯一值獲取計數的最簡單,最直接的方法。

這是我的數據集:

id   |    item_id   |   user_id
1    |    10        |   123
2    |    10        |   123
3    |    10        |   123
4    |    11        |   123
5    |    12        |   123
6    |    10        |   456
7    |    10        |   789
8    |    12        |   456

理想情況下,當我運行查詢時,我應該得到以下信息:

count    |    user_id
3        |    123
2        |    456
1        |    789

盡管用戶123擁有5個物品,但實際上僅購買了3個唯一物品。 這真的很簡單,我完全想念嗎? 這是我目前擁有的:

SELECT count(user_id) AS count, item_id, user_id
FROM table
GROUP BY item_id, user_id
HAVING count > 1
ORDER BY count DESC

這產生了與我想要的相反的東西:

count    |    user_id
5        |    123
2        |    456
1        |    789

提前致謝! 如果已經回答了這個問題,請指出我的方向。

您可以計算不同的項目ID,然后按用戶ID分組:

SELECT 
  COUNT(DISTINCT item_id) AS count, 
  user_id
FROM 
  event_assigned
GROUP BY 
  user_id
ORDER BY 
  count DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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