结构 · 2026 年 4 月 2 日 · 9 分钟
列出、描述、抽样、执行:问数的四件工具
我在公开的智能问数实现文章里,看到一套很克制的工具表:列出表、抽样行、描述结构、执行语句。作用分别是发现房间、看清形态、核对字段、拿到结果。落地要点也很朴素:抽样要限行脱敏,执行要只读限时限行。个人没有代理循环,也可以把四步写成手势。
列出是为了少猜表
问题提到订单,库里可能有 orders、order_dwd、order_wide。先看清单和注释,再挑。
描述是为了少猜列
类型、主键、是否可空,决定 JOIN 和 WHERE 怎么写。
抽样是为了少猜值
状态到底是 paid 还是 1 还是「已支付」,抽样一眼就穿。执行放最后,并且只读。
一次完整的问法可以先写成下面这样:
对 orders 抽样 5 行,只看时间、状态、金额三列,手机号不要出来。
落到语句上,草稿常常是:
SELECT pay_time, pay_status, pay_amount
FROM orders
ORDER BY pay_time DESC
LIMIT 5;
四件工具有顺序。执行不是第一件。把执行提前,等于闭眼过马路。
结构是地图,不是附录
公开实现文章把列出表、描述字段、抽样行、再执行写成四件工具。工具顺序不能倒。执行放第一位,等于闭眼过马路。
结构链接的失败,十之八九不是语法。是找错表、找错列、找错枚举值。注释、别名、示例值,是地图上的注记。注记质量决定问数上限。有人只补三十个核心字段的含义,可用程度就明显上升。这是最不时髦、也最管用的工作。
语义层是把指标、维度、关联路径写成中间层。个人没有引擎时,用字典和卡片冒充。没有这一层,每次提问都在重新发明销售额。宽表好问、星型好管,选边可以,口径必须唯一。
读完这一辑可以做什么
给十个核心字段写注释:时间、金额、状态、用户、地区、类目,外加四个你会用到的。注释里写计算、单位、示例值。写完再去问数,少猜一轮。
四件工具的顺序是纪律。执行永远不是第一件。