设想一家美国烘焙店让 AI 写周报。三张订单卡的金额分别是 20 美元、0 美元和空白。老板问平均订单金额,助手回答 6.67 美元。算式可以成立,但它偷偷把未知金额当成了零。以下是合成练习,不是客户案例;我们关心的是报表口径,不是预测营收。 PostgreSQL 官方文档说明:COUNT(*) 计算输入行数,COUNT(金额) 只计算金额非空的行,AVG 计算非空输入的平均值。[1] 因此这个例子有三行、两个已知金额,已知金额平均值为 10 美元。它不是全部订单的已知平均值;缺失的第三笔仍需核实。 零是一个已知数值;空值表示这项值尚未提供;没有输入行则是另一种状态。PostgreSQL 的 SUM 在没有输入行时返回空值,而非零。[1] 这不能独自证明没有销售:日期筛选、同步故障或权限范围也可能让查询没有结果。应查明业务原因,而不是让文字生成器猜。 把空值补成零会改变统计问题。我们的建议是让业务负责人决定:何时零是合法金额,缺失值如何显示,哪些记录允许进入指标。为报表同时提供总行数、有效金额数、缺失数和统计范围;显示“已知金额平均值”,不要只写一个光鲜数字。 推荐结果卡写清日期与时区、筛选条件、数据更新时间、总行数、有效值数、聚合结果和完整性状态。AI 只把这些字段转成文字;若金额缺失,就说明覆盖范围不足。合成示例可写:三笔记录中两笔金额已知,平均 10 美元,另有一笔待核实。 上线前准备四组测试:全是零、零与空值混合、全是空值、完全没有行。分别核对计数、聚合值和最终文案,确保后两组不会自动变成“本周没有收入”。这些是建议测试,未在客户系统执行。审批报表时,先看分母与缺失状态,再看 AI 写得是否流畅。