【发布时间】:2020-02-25 09:03:04
【问题描述】:
我有 2 个表,想制作一个百分比表。
select a.claim_by,
count(select count (claim_by) from itcorp_first_response a) + (select count (claim_by) from itcorp_reopen_response b) as total_response,
count(select count (response_time > minute (response_time -30)) from itcorp_first_response a) + (select count (response_time > minute (response_time -30)) from itcorp_reopen_response b) as total_target,
count(select count (response_time > minute (response_time +30)) from itcorp_first_response a) + (select count (response_time > minute (response_time +30)) from itcorp_reopen_response b) as total_untarget
from itcorp_first_response a, itcorp_reopen_response b
where a.claim_by in ('Petrus Asbirianto','Ifnu Muhardhi','Riko Rachmat Saleh','Muhammad Irsan','Dion Laksmana')
and a.claim_by = b.claim_by
GROUP BY a.claim_by;
但出现以下错误:
QL 错误 [1064] [42000]: (conn=78589) 您的 SQL 中有错误 句法;检查与您的 MariaDB 服务器相对应的手册 在 'select count (claim_by) from 附近使用正确语法的版本 itcorp_first_response a) + (select count (claim_by)' 在第 2 行
【问题讨论】:
-
今日提示:始终使用现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接! -
首先缺少括号,例如这里的开头和结尾括号:
count((select count (claim_by) from itcorp_first_response a) + (select count (claim_by) from itcorp_reopen_response b)) as total_response,. -
两个关联子查询与聚合,和 GROUP BY?
-
向我们展示一些示例表数据和预期结果 - 作为格式化文本,而不是图像。 minimal reproducible example
-
这看起来过于复杂。并且错了。 Q1:
select count (claim_by) from itcorp_first_response a计算表itcorp_first_response中出现的所有非空claim_by。 Q2:select count (claim_by) from itcorp_reopen_response b对表itcorp_reopen_response执行相同的操作。select count( (Q1) + (Q2) )仅当两个结果都不为空时才计算结果。然后为主查询中的每一行评估相同的值。这似乎没有意义。