如何计算同一 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
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