Mysql - 订阅多个类别时仅选择一次用户

时间:2011-03-20 10:29:20

标签: mysql

美好的一天,

目前我正在开展一个项目,我有点卡住了。这个问题是一个相对简单的表格(见照片:http://cl.ly/5M0x)。

有一个user_id collumn和一个categorie_id collumn,每个都代表另一个表(用户和类别)的id。现在我试图让每个类别中的用户数量变得简单,并且可以像:

'SELECT COUNT(uc.user_id) as total FROM xs2media_users_categories as uc GROUP by uc.categorie_id'

但是,我想要的是,当某个用户被计入某个类别时,它将不计入其订阅的其他类别。因此,例如,如果用户编号4订阅了类别2,它将增加该计数,但不再增加类别3,即使他也可以订阅该类别。

希望这样做。

感谢。

1 个答案:

答案 0 :(得分:2)

以下查询为每个用户选择一个类别,然后计算每个类别的nr个用户。

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;

这是你在找什么?