Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL返回多个总数_Php_Mysql_Sql - Fatal编程技术网

Php 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

我有一个简单的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          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标准

也请欣赏关于
聚合功能的说明。