首页/数据/数据工程与 ETL 速查/空值检测 SQL 模板

空值检测 SQL 模板

空值检测按字段批量输出空值行数与空值率,并按表汇总成稽核结果,便于趋势对比;关键字段(主键、金额、时间)建议设严格阈值。

输出总行数、各字段空值数、空值率
阈值关键字段接近 0,业务可空字段设上限
趋势与近 7 天空值率对比
落库写入稽核结果表供看板展示

多字段空值检测

多字段空值检测
SELECT COUNT(1) AS total_cnt,
       SUM(CASE WHEN order_id IS NULL THEN 1 ELSE 0 END) AS null_order_id,
       SUM(CASE WHEN user_id  IS NULL THEN 1 ELSE 0 END) AS null_user_id,
       SUM(CASE WHEN pay_amount IS NULL THEN 1 ELSE 0 END) AS null_pay_amount,
       ROUND(SUM(CASE WHEN pay_amount IS NULL THEN 1 ELSE 0 END) / COUNT(1), 4) AS null_pay_rate
FROM dwd_trade_order_detail_di
WHERE dt = '2026-10-11';
把每个字段的“是否允许为空”写进数据字典,检测规则才有明确判定标准。

易错点

  • 用 COUNT(字段) 统计空值时把 NULL 直接排除,误以为没有空值
  • 分区分母用整表行数导致空值率被稀释

数据来源与参考

  • 行业数据质量稽核实践
  • DAMA-DMBOK 完整性维度
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌