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

SQL Case Count作业统计查询返回结果不符合预期原因问询

问题根因说明

1. 核心错误:COUNT函数的逻辑认知偏差

你在统计非预期作业数量时,COUNT()内部的CASE表达式对预期作业返回0、非预期返回1,但COUNT()函数只会忽略NULL值,不管值是0还是1,只要非NULL就会被计入总数,这是导致结果不符合预期的最主要原因。

你可以用以下两种方式修正统计逻辑:

  • 把CASE的预期作业分支返回NULL而非0,再用COUNT()统计
  • 直接用SUM()替换COUNT(),累加非预期作业返回的1值

2. BATCH作业结果符合预期的原因

验证结果显示BATCH库中StatusID=3的作业JobTypeID为30、1、1072、234:

  • WHERE条件JobTypeID NOT IN (1,30,4005)过滤后剩下1072、234两条数据
  • 这两条数据在CASE中分别返回1和0,都被COUNT()统计,所以ITEMS=2>0,StatusID返回AMBER,和你的预期一致。

3. IMPORT作业结果异常的原因

验证结果显示IMPORT库中StatusID=3的作业JobTypeID为4005、124、191,全部属于你设置的预期作业范围:

  • 正常情况下WHERE条件JobTypeID NOT IN (191,124,4005)会过滤掉所有数据,统计结果应为0,StatusID返回GREEN
  • 你实际得到ITEMS=4、StatusID=AMBER,说明还有4条不在你预设预期列表中的作业在运行,可能是你漏写了预期作业的JobTypeID,或者变量声明的语法错误导致查询范围异常:你写的DECLARE @Datecreated DATETIME = GetDate())多了一个多余的右括号,会触发语法错误,可能导致查询复用旧的变量值或者统计全量数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:39:04