2015-12-07 74 views
0

MySQL表:如何統計同一個表中的每個人的行爲?

(用戶,作用)

什麼是我可以運行得到這樣的結果

用戶查詢|爲每個用戶計數action1 |爲每個用戶計數action2 |算上ACTION3每用戶

+0

在結果表中,我們希望看到的只有3個具體的行動。 行的示例:User1 5 14 9 –

回答

1
SELECT user, count(action1), count(action2),count(action3) GROUP BY user 

你可以組由用戶和返回的每行動記錄的計數。如果您有action type列,則可能需要在計數中使用case語句。這看起來像這樣:

SELECT user, 
     SUM(CASE WHEN actiontype=1 THEN 1 ELSE 0 END) as Action1Total, 
     SUM(CASE WHEN actiontype=2 THEN 1 ELSE 0 END) as Action2Total, 
     SUM(CASE WHEN actiontype=3 THEN 1 ELSE 0 END) as Action3Total 
GROUP BY user 

您也可以使用COUNT來代替。因爲默認CASE是空的,COUNT犯規數null

COUNT(CASE WHEN actiontype=1 THEN 1 END) as Action1Total 
+0

我試圖運行此查詢,但出現錯誤: SELECT user_id,SUM(CASE WHEN action =「DELETE」THEN 1 ELSE 0 END)as Action1Total,SUM(CASE WHEN action =「CREATE」THEN 1 ELSE 0 END)作爲Action2Total,SUM(CASE WHEN action =「Finish」THEN 1 ELSE 0 END)as tbl_audit_trail GROUP BY user_id –

+0

錯誤是什麼? –

+1

@devlincarnate在'action3total'處有一個aditional')',現在試試 –

相關問題