Reputation: 3234
Good day,
Currently I am working on a project, and I am kinda stuck. It is a relative simple table where this question is about (see this photo: http://cl.ly/5M0x ).
There is a user_id collumn and a categorie_id collumn, each representing an id from another table (users and categories). Now I am trying to get the number of users within each category which is simple and can be done like:
'SELECT COUNT(uc.user_id) as total FROM xs2media_users_categories as uc GROUP by uc.categorie_id'
However what I want is that when a user has been counted for a certain category it won't be counted for another categorie where it is subscribed to. So for example if user number four is subscribed to category 2, it will increment the count of that, but not for category 3 anymore, even though he could be subscribed to that category too.
Hope this makes sence.
Thanks.
Upvotes: 1
Views: 220
Reputation: 12843
The following query picks one category for each user, and then counts the nr of users per each category.
select categorie_id
,count(*)
from (select user_id
,min(categorie_id) as categorie_id
from xs2_media_users_categories
group
by user_id
) u
group
by categorie_id;
Is this what you are looking for?
Upvotes: 2