設想一家美國烘焙店讓 AI 寫週報。三張訂單卡的金額分別是 20 美元、0 美元和空白。老闆問平均訂單金額,助手回答 6.67 美元。算式可以成立,但它偷偷把未知金額當成了零。以下是合成練習,不是客戶案例;我們關心的是報表計算方式,不是預測營收。 PostgreSQL 官方文件說明:COUNT(*) 計算輸入行數,COUNT(金額) 只計算金額非空的行,AVG 計算非空輸入的平均值。 因此這個例子有三行、兩個已知金額,已知金額平均值為 10 美元。它不是全部訂單的已知平均值;缺漏的第三筆仍需核實。 零是一個已知數值;空值表示這項值尚未提供;沒有輸入行則是另一種狀態。PostgreSQL 的 SUM 在沒有輸入行時回傳空值,而非零。 這不能單憑這點證明沒有銷售:日期篩選、同步故障或權限範圍也可能讓查詢沒有結果。應查明業務原因,而不是讓文字產生器猜。 把空值補成零會改變統計問題。我們的建議是讓業務負責人決定:何時零是合法金額,缺漏值如何顯示,哪些記錄允許進入指標。為報表同時提供總行數、有效金額數、缺漏數和統計範圍;顯示“已知金額平均值”,不要只寫一個漂亮數字。 推薦結果卡寫清日期與時區、篩選條件、資料更新時間、總行數、有效值數、彙總結果和完整性狀態。AI 只把這些欄位轉成文字;若金額缺漏,就說明覆蓋範圍不足。合成示例可寫:三筆記錄中兩筆金額已知,平均 10 美元,另有一筆待核實。 上線前準備四組測試:全是零、零與空值混合、全是空值、完全沒有行。分別核對計數、彙總值和最終文案,確保後兩組不會自動變成“本週沒有收入”。這些是建議測試,未在客戶系統執行。審核報表時,先看分母與缺漏狀態,再看 AI 寫得是否流暢。