质量 · 2026 年 8 月 2 日 · 8 分钟

报错之后改一处,不要连发三版

公开纠错循环把报错当成下一轮输入,并设置迭代上限。个人没有循环,也可以有上限:同一问题最多改五次,每次只动一处。连发三版,成功了也不知道为什么。失败了更不知道。

先读完错误

列不存在、语法、超时,三类处理完全不同。

改一处

改时间就不要同时改 JOIN。

到上限就停

写下已验证的信息和仍缺的口径,不要硬出数。

一次完整的问法可以先写成下面这样:

报 column city_name does not exist 之后,只改列名,不改过滤。

落到语句上,草稿常常是:

SELECT city, SUM(pay_amount) AS gmv
FROM orders
WHERE pay_time >= DATE '2026-03-01'
  AND pay_time < DATE '2026-04-01'
  AND pay_status = 'paid'
GROUP BY city;

纠错是阅读。阅读一次只划一句。划三句,就不是在读错误,是在碰运气。

质量看结果,不看词序

自然语言到 SQL 的评测,后来用执行结果是否一致来打分。个人核对也应该看数。语句丑、结果对,比语句漂亮、结果错更有用。

空结果先查过滤,再查有没有数据。和对账报表不一致,先对齐五项:时间列、含税、含退、内部单、粒度。报错之后改一处,同一问题设迭代上限。路径要看得见:选表原因、关联原因、过滤原因,写在收据上。

金标准至少二十道,覆盖时间、粒度、一对多、空值、同环比。标准数从报表来,不要用某次问数的结果自我证明。给出数字时,把口径名称和单位一起写上。

读完这一辑可以做什么

选五道你每周都问的题,把报表数抄在卡片背面。以后只认这五个数。感觉上的准确率,先靠边。

一次改一处。同时改三处,成功了也不知道为什么。

WUJI问数

个人笔记站。记录用中文把业务问题变成可核对查询的方法与实践。

本站为个人非经营性网站,内容开放阅读。文中示例仅供学习,执行任何数据库操作前请自行核对。

笔记关于隐私说明使用说明ICP备案查询