从count()中选择max()

Zdo*_*omb 20 mysql count max

可能重复:
每个派生表必须有自己的别名

我需要找到每个用户最多的动作

表列:action_id,action_status,user

请求:

SELECT MAX(`counted`) FROM
(
SELECT COUNT(*) AS `counted`
FROM `table_actions`
WHERE `status` = "good"
GROUP BY `user`
)
Run Code Online (Sandbox Code Playgroud)

错误消息:"每个派生表必须有自己的别名"

怎么了?..

Mic*_*ade 26

这只是意味着MySQL坚持要给内部SELECT一个名字,比如:

SELECT MAX(counted) FROM
(
    SELECT COUNT(*) AS counted
    FROM table_actions
    WHERE status = "good"
    GROUP BY user
) AS counts;
Run Code Online (Sandbox Code Playgroud)

  • 如果您还选择行状态,它将不准确:`select max(counted), status from (select count(*) as counted, status ...` 将不起作用...字段“状态”不会准确。我真的不知道如何解决这个问题 (2认同)