质量 · 2026 年 8 月 6 日 · 9 分钟
让问数的路径看得见
公开文章说,很多团队失败不是因为不会写语句,而是不可观测:不知道为什么查这张表、为什么这样 Join、为什么改口径。建议给每一步写理由。个人练习把理由写在收据上:选表原因、抽样所见、最终过滤。理由短,但要有。
选表理由
因为注释写了支付事实,且抽样有 pay_status。
关联理由
因为两边 order_id 计数对得上。
过滤理由
因为卡片规定不含内部单。
一次完整的问法可以先写成下面这样:
收据附言:选 orders 不选 ods_orders,因为口径页指定支付事实在 orders。
落到语句上,草稿常常是:
SELECT SUM(pay_amount) AS gmv
FROM orders
WHERE pay_time >= DATE '2026-03-01'
AND pay_time < DATE '2026-04-01'
AND is_internal = 0
AND pay_status = 'paid';
看得见的路径才能复盘。复盘不是为了写周报,是为了下一张卡片少猜一次。
质量看结果,不看词序
自然语言到 SQL 的评测,后来用执行结果是否一致来打分。个人核对也应该看数。语句丑、结果对,比语句漂亮、结果错更有用。
空结果先查过滤,再查有没有数据。和对账报表不一致,先对齐五项:时间列、含税、含退、内部单、粒度。报错之后改一处,同一问题设迭代上限。路径要看得见:选表原因、关联原因、过滤原因,写在收据上。
金标准至少二十道,覆盖时间、粒度、一对多、空值、同环比。标准数从报表来,不要用某次问数的结果自我证明。给出数字时,把口径名称和单位一起写上。
读完这一辑可以做什么
选五道你每周都问的题,把报表数抄在卡片背面。以后只认这五个数。感觉上的准确率,先靠边。
选表、关联、过滤,三句理由就够复盘。没有理由就没有改进点。