如何计算同一 table 中每个人的操作数?

How to count actions per individual in the same table?

Mysql Table:

(用户,操作)

我可以运行得到这个结果的查询是什么

用户 |计算每个用户的 action1 |计算每个用户的 action2 |计算每个用户的 action3

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

您可以只按用户分组,return 每个操作的记录数。如果您有 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 为 null,而 COUNT 不算 null

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