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