SQL指标口径数据质量
SQL 可以精确执行一条规则,却不会替团队决定规则是否符合业务含义。许多查询差异并不是语法错误,而是不同人对同一个指标使用了不同口径。
一句话指标定义
在写查询前,尝试完成这句话:
在指定时间范围内,对满足某些条件的业务对象,按明确规则进行计数或计算,并说明排除项。
例如,“月度付费客户数”需要继续回答:按客户账号还是订单计数?退款订单是否排除?跨月续费算一次还是多次?时区按哪里?
查询前的五项检查
- 对象:统计客户、订单、商品还是事件?
- 时间:使用创建时间、支付时间还是完成时间?
- 状态:哪些状态被包含或排除?
- 去重:唯一键是什么,关联后是否会重复?
- 缺失:空值、未知值和延迟数据如何处理?
在 SQL 中保留可读性
使用含义明确的 CTE 名称,把过滤、关联和聚合分成可检查步骤。不要为了减少行数,把所有逻辑压缩在一个难以审查的表达式里。复杂查询还应记录数据版本和运行日期。
用小样本验证
先选择少量已知记录,手工计算期望结果,再与查询输出比较。总数相等并不代表逻辑正确;还要检查分类分布、边界日期和重复记录。
指标定义是业务与技术之间的接口。先把接口写清楚,SQL 才能成为可复现的实现。
涉及工具、平台或法规时,请在实际应用前核对最新官方信息。