В основном, как говорится в этом вопросе, я ищу самый простой и самый прямой способ получения счетов на основе уникальных значений.MYSQL Игнорировать значения повторения и получить уникальный счет
Вот мой набор данных:
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
Спасибо заранее! И если это уже ответили, пожалуйста, укажите мне в этом направлении.