我有一个user
表,其中包含诸如action
执行哪个activities
之类的信息。每个用户可以在其中执行多项操作。
我想从 SELECT COUNT(*) FROM (
SELECT MAX(action_id) AS action_id
FROM activities
GROUP BY participant_id
) T
GROUP BY action_id
表中选择执行的每个动作的计数。
我写了类似的查询
FilteringStack
它可以工作,但是我不确定这是否是解决问题的最佳方法。
答案 0 :(得分:0)
这给您错误的数据。您不会得到“执行的每个动作的次数”。,但是每个用户的动作ID最高的每个动作的次数
删除participant_id
部分,即可简化查询(并修复):
SELECT action_id,
COUNT(*) AS Count
FROM activities
GROUP BY action_id
答案 1 :(得分:0)
您的问题对您要完成的工作很含糊。解决方案似乎是
SELECT action_id,
COUNT(*) as num_actions,
COUNT(DISTINCT participant_id) as num_participants
FROM activities
GROUP BY action_id;
如果您希望每个参与者 的操作次数,它看起来像:
SELECT participant_id,
COUNT(*) as num_actions
FROM activities
GROUP BY participant_id;