跳至主要内容

SQL / Python / Tableau

写 SQL 之前,先把指标口径写成一句话

一个可复现的指标定义,应在查询之前说明对象、时间、过滤条件、计算方式和边界。

SQL指标口径数据质量

SQL 可以精确执行一条规则,却不会替团队决定规则是否符合业务含义。许多查询差异并不是语法错误,而是不同人对同一个指标使用了不同口径。

一句话指标定义

在写查询前,尝试完成这句话:

在指定时间范围内,对满足某些条件的业务对象,按明确规则进行计数或计算,并说明排除项。

例如,“月度付费客户数”需要继续回答:按客户账号还是订单计数?退款订单是否排除?跨月续费算一次还是多次?时区按哪里?

查询前的五项检查

  1. 对象:统计客户、订单、商品还是事件?
  2. 时间:使用创建时间、支付时间还是完成时间?
  3. 状态:哪些状态被包含或排除?
  4. 去重:唯一键是什么,关联后是否会重复?
  5. 缺失:空值、未知值和延迟数据如何处理?

在 SQL 中保留可读性

使用含义明确的 CTE 名称,把过滤、关联和聚合分成可检查步骤。不要为了减少行数,把所有逻辑压缩在一个难以审查的表达式里。复杂查询还应记录数据版本和运行日期。

用小样本验证

先选择少量已知记录,手工计算期望结果,再与查询输出比较。总数相等并不代表逻辑正确;还要检查分类分布、边界日期和重复记录。

指标定义是业务与技术之间的接口。先把接口写清楚,SQL 才能成为可复现的实现。

涉及工具、平台或法规时,请在实际应用前核对最新官方信息。