2014-03-31 132 views
-1

我有一个表,“点击”,如此。它会产生一个新行每次用户点击某个项目时间:mysql计数重复 - 按两列分组

item user_id 
1511  787 
1511  432 
1511  522    
1511  432   

我需要重复值的计数由项目编号分组user_id列(有百万人)。因此,在这种情况下,它将是1.如果用户432点击该项目3次,它仍然是1.但是如果用户787点击了它两次,并且用户432点击了它585,895次,那么它将是2.

我知道如何计算行项目和组,但不涉及将两个列分组并返回dupe的数量。

谢谢。

编辑:

(期望的结果 - 基于表我已经提交)

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

item multi_clickers 
1511  1 
1512  ? 
1513  ?   
1514  ? 
+0

你能证明你希望的结果吗? –

+0

是否有必要消除只有一个用户点击一个项目的行,或者只有一个用户点击一个项目?或者你是否也包括这个? – spencer7593

+0

对不起,请参阅我上面所做的编辑,希望更清楚 – Lorenzo

回答

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