Php MySQL返回多个总数
我有一个简单的MySQL查询:Php MySQL返回多个总数,php,mysql,sql,Php,Mysql,Sql,我有一个简单的MySQL查询: SELECT who, status, COUNT(status) AS Total, completion_status AS Role FROM `trespondent_360` GROUP BY who, status ORDER BY who, status 这将正确地返回到数据库中每个人的总数。然后,我需要计算他们的完成状态开始或完成的总数 输出应该类似于: Who Total Status
SELECT who, status,
COUNT(status) AS Total, completion_status AS Role
FROM `trespondent_360`
GROUP BY who, status
ORDER BY who, status
这将正确地返回到数据库中每个人的总数。然后,我需要计算他们的完成状态开始或完成的总数
输出应该类似于:
Who Total Status Completed
Mike Smith 1 Self 1
Mike Smith 5 Other 2
Bob Jones 1 Self 0
Bob Jones 6 Other 5
每当我向上面的代码中添加时,就会得到一个错误,操作数应该包含1列。。见下文
SELECT who, status,
COUNT(status) AS Total, completion_status AS Role,
(SELECT who, status, COUNT(status) FROM `trespondent_360`
WHERE completion_status IN ('Started','Complete')) AS Completed
FROM `trespondent_360`
GROUP BY who, status
ORDER BY who, status
对于我需要做的任何建议和反馈,我们都将不胜感激。如果您想计算状态
完成
或启动
,您可以在以下情况下使用案例:
SELECT who, status,
completion_status AS Role,
COUNT(status) AS Total,
COUNT(CASE WHEN status IN ('Started','Complete') THEN 1 END) AS Completed
FROM `trespondent_360`
GROUP BY who, status
ORDER BY who, status;
顺便说一下,您应该在completion\u status
列上使用聚合函数,我知道它可以用于MySQL,但它不符合ANSI标准也请欣赏关于聚合功能的说明。