2014-03-31 186 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