mysql计数重复 - 按两列分组

时间:2014-03-31 23:48:14

标签: mysql sql

我有一张桌子,“点击”,就像这样。每次用户点击某个项目时,它都会生成一个新行:

item    user_id
1511     787
1511     432 
1511     522             
1511     432        

我需要计算按项目编号分组的user_id列中的重复值(其中有数百万个)。所以在这种情况下它将是1.如果用户432点击该项目3次,它仍然是1.但如果用户787点击它两次并且用户432点击它585,895次,那么它将是2. / p>

我知道如何计算行项目和组,但不是在对两个列进行分组并返回欺骗计数时。

谢谢。

修改

(期望的结果 - 基于我已经呈现的表格)

SELECT c.item, count(? - still unsure on query) AS multi_clickers FROM clicks c

item    multi_clickers
1511      1
1512      ? 
1513      ?          
1514      ? 

1 个答案:

答案 0 :(得分:1)

select item, count(userid) as multi_clickers
from
  (select item, userid, count(userid) as total_clicks_for_user
   from clicks 
   group by item, userid
   having total_clicks_for_user > 1) a
group by item

http://sqlfiddle.com/#!2/2170c/6