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

如何让SQL正确统计多字段中External Professional的出现次数?

解决方案

问题出在你用OR把四个字段的判断合并成单个CASE语句,导致每条记录最多仅返回1,完全忽略了多字段匹配的情况。要实现每个匹配字段单独计数,需要把每个字段的判断拆成独立的CASE语句,将它们的结果相加后再求和。

修改后的SQL如下:

SELECT 
    rqia_name AS Inspection,
    SUM(
        (CASE WHEN rqia_inspectorconductingidname = 'External Professional' THEN 1 ELSE 0 END) +
        (CASE WHEN rqia_inspectorconducting2name = 'External Professional' THEN 1 ELSE 0 END) +
        (CASE WHEN rqia_inspectorsupporting1idname = 'External Professional' THEN 1 ELSE 0 END) +
        (CASE WHEN rqia_inspectorsupporting2idname = 'External Professional' THEN 1 ELSE 0 END)
    ) AS ExtProfInvolved
FROM Filteredrqia_inspection
GROUP BY rqia_name
HAVING SUM(
        (CASE WHEN rqia_inspectorconductingidname = 'External Professional' THEN 1 ELSE 0 END) +
        (CASE WHEN rqia_inspectorconducting2name = 'External Professional' THEN 1 ELSE 0 END) +
        (CASE WHEN rqia_inspectorsupporting1idname = 'External Professional' THEN 1 ELSE 0 END) +
        (CASE WHEN rqia_inspectorsupporting2idname = 'External Professional' THEN 1 ELSE 0 END)
    ) > 0

逻辑说明

  • 每个独立的CASE语句单独判断对应字段是否为External Professional,匹配返回1,不匹配返回0
  • 四个CASE结果相加,得到单条记录中外部专业人员的出现次数(最多4次)
  • SUM函数对所有记录的次数求和,得到每组检查名称下的总出现次数
  • HAVING子句基于总次数过滤,仅保留有外部专业人员参与的分组

内容的提问来源于stack exchange,提问作者Paula Morrison

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:25:02