You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JOIN关联查询计算SQL质量审核通过率并返回百分比结果

质量审核通过率SQL查询修正方案

问题原因

你现有的合并查询将分子、分母逻辑写反,实际执行的是「总审核实例数 ÷ 审核通过数 × 100」,和你需要的「审核通过数 ÷ 总审核实例数 ×100」逻辑相反,因此结果异常。

正确写法

写法1:修正子查询逻辑

直接调整分子分母的位置即可:

SELECT 
  (SELECT COUNT(*) 
   FROM EVENTS 
   RIGHT JOIN EVENTATTRIBUTES ON EVENTS.EVENT_NUM = EVENTATTRIBUTES.EVENT_NUM 
   WHERE EVENTS.EVENT_TYPE='QUALITY REVIEW'
   AND EVENTATTRIBUTES.ATTRIBUTE_NAME='QR PASS' 
   AND EVENTATTRIBUTES.ATTRIBUTE_AS_CHAR='1') * 100.0 
  / 
  (SELECT COUNT(*) 
   FROM EVENTS 
   RIGHT JOIN EVENTATTRIBUTES ON EVENTS.EVENT_NUM = EVENTATTRIBUTES.EVENT_NUM 
   WHERE EVENTS.EVENT_TYPE='QUALITY REVIEW' 
   AND EVENTATTRIBUTES.ATTRIBUTE_NAME='QR PASS') AS pass_rate;

写法2:条件聚合(更高效,仅扫描一次表)

用条件聚合统计通过数和总数,性能更优,也便于调试:

SELECT 
  ROUND(
    SUM(CASE WHEN EVENTATTRIBUTES.ATTRIBUTE_AS_CHAR = '1' THEN 1 ELSE 0 END) * 100.0 
    / COUNT(*),
  1) AS pass_rate
FROM EVENTS 
RIGHT JOIN EVENTATTRIBUTES ON EVENTS.EVENT_NUM = EVENTATTRIBUTES.EVENT_NUM 
WHERE EVENTS.EVENT_TYPE='QUALITY REVIEW'
AND EVENTATTRIBUTES.ATTRIBUTE_NAME='QR PASS';

上述写法中ROUND(xxx,1)会自动保留1位小数,符合你示例中62.1的输出要求。

内容的提问来源于stack exchange,提问作者Matt Goodrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:15:03