Mysql 在子查询中选择两列

Mysql 在子查询中选择两列,mysql,mysql-error-1241,Mysql,Mysql Error 1241,我有以下SQL语句: SELECT Office, COUNT(Office) As Tot_Part, (SELECT Office, COUNT(Office) FROM trespondent WHERE completion_status= 'Started' OR completion_status = 'Complete' GROUP BY Office ORDER BY Office ) As Total_Resp F

我有以下SQL语句:

SELECT  Office, 
COUNT(Office) As Tot_Part, 
(SELECT Office, COUNT(Office) 
      FROM trespondent 
      WHERE completion_status= 'Started' 
      OR completion_status = 'Complete' 
      GROUP BY Office ORDER BY Office
) As Total_Resp 
FROM trespondent 
WHERE completion_status <> 'New' 
GROUP BY Office 
ORDER BY Office

选择列表中的任何子查询都必须是标量子查询,也就是说,它必须有一列和一行

但在这种情况下,您根本不需要子查询:

SELECT 
 Office, 
 COUNT(Office) As Tot_Part, 
 SUM(completion_status IN ('Started', 'Complete')) AS Total_Resp
FROM trespondent 
WHERE completion_status <> 'New' 
GROUP BY Office 
ORDER BY Office
选择
办公室,
将(办公室)计算为合计部分,
总和(完成状态为“已开始”、“已完成”)作为总计
来自trespondent
何处完成_状态为“新”
分组办公
办公室订购
诀窍在于,值为1或0的SUM()与值为1的行的COUNT()相同。MySQL将布尔表达式视为1或0

SELECT 
 Office, 
 COUNT(Office) As Tot_Part, 
 SUM(completion_status IN ('Started', 'Complete')) AS Total_Resp
FROM trespondent 
WHERE completion_status <> 'New' 
GROUP BY Office 
ORDER BY Office