质量 · 2026 年 7 月 29 日 · 8 分钟
跑得通、结果一致、语句长得像,是三件不同的事
自然语言到 SQL 的评测,走过从「语句像不像」到「结果一不一致」的路。这对练习很重要。语句丑、结果对,比语句漂亮、结果错更有用。公开讨论还提醒:多出来的无关列,不一定算错。先比关键指标。
跑得通只是语法
语法过了,口径可能仍错。
结果一致是金标准
同一问题准备标准答案表,比结果。
长得像最不重要
别为了像某条范例去改已经对的语句。
一次完整的问法可以先写成下面这样:
标准答案是 1280。你的语句只要 SUM 得到 1280,就算过。
落到语句上,草稿常常是:
SELECT SUM(pay_amount) AS gmv
FROM orders
WHERE pay_time >= DATE '2026-03-01'
AND pay_time < DATE '2026-03-02'
AND pay_status = 'paid';
-- 核:gmv 是否等于金标准 1280
把金标准贴在卡片上。卡片不收「看起来差不多」这种批改。
质量看结果,不看词序
自然语言到 SQL 的评测,后来用执行结果是否一致来打分。个人核对也应该看数。语句丑、结果对,比语句漂亮、结果错更有用。
空结果先查过滤,再查有没有数据。和对账报表不一致,先对齐五项:时间列、含税、含退、内部单、粒度。报错之后改一处,同一问题设迭代上限。路径要看得见:选表原因、关联原因、过滤原因,写在收据上。
金标准至少二十道,覆盖时间、粒度、一对多、空值、同环比。标准数从报表来,不要用某次问数的结果自我证明。给出数字时,把口径名称和单位一起写上。
读完这一辑可以做什么
选五道你每周都问的题,把报表数抄在卡片背面。以后只认这五个数。感觉上的准确率,先靠边。
金标准收的是数。不收「看起来差不多」的词序。