结构 · 2026 年 4 月 14 日 · 8 分钟

状态值才是 WHERE 的真相

口头说「已支付」,库里可能是 paid、PAID、2、「支付成功」。问数若只翻译字段名,WHERE 会写成漂亮的错。抽样和分组计数,是把枚举摊在桌上的办法。

先给状态分布

GROUP BY status 看有哪些值、各有多少。不要凭记忆写等于号。

文档和现实会对不上

注释写着 1 已支付 2 取消,抽样里却冒出 3。以抽样为准,回头改文档。

大小写和空格

trim 和大小写折叠能救一些。救不了的,把合法值写成名单。

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

orders.pay_status 现在有哪些值?各多少行?

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

SELECT pay_status, COUNT(*) AS cnt
FROM orders
GROUP BY pay_status
ORDER BY cnt DESC;

这张小表是 WHERE 的字典。没有它,已支付只是一个愿望。

结构是地图,不是附录

公开实现文章把列出表、描述字段、抽样行、再执行写成四件工具。工具顺序不能倒。执行放第一位,等于闭眼过马路。

结构链接的失败,十之八九不是语法。是找错表、找错列、找错枚举值。注释、别名、示例值,是地图上的注记。注记质量决定问数上限。有人只补三十个核心字段的含义,可用程度就明显上升。这是最不时髦、也最管用的工作。

语义层是把指标、维度、关联路径写成中间层。个人没有引擎时,用字典和卡片冒充。没有这一层,每次提问都在重新发明销售额。宽表好问、星型好管,选边可以,口径必须唯一。

读完这一辑可以做什么

给十个核心字段写注释:时间、金额、状态、用户、地区、类目,外加四个你会用到的。注释里写计算、单位、示例值。写完再去问数,少猜一轮。

状态分布表是 WHERE 的字典。没有字典,已支付只是愿望。

WUJI问数

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

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

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