场景 · 2026 年 8 月 18 日 · 9 分钟

订单是状态机,金额只是挂在某一态上的数

订单不是一行永远的金额,是一串状态。问「卖了多少」却不说哪一态,等于在状态机上闭眼跳。下单金额、支付金额、发货金额、未取消金额,四条时间列可能都不一样。问数要把态说出来。

一态一时间

支付看 pay_time,取消看 cancelled_at。混用会把取消单算进业绩。

退款不是负的下单

退款有自己的单和自己的时间。用支付减退,要声明窗口是否同一段。

状态机图画在卡片上

允许的状态名单写死。

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

3 月支付成功且截至昨天仍未取消的金额。

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

SELECT 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'
  AND (cancelled_at IS NULL OR cancelled_at >= DATE '2026-04-01');

取消发生在 4 月的 3 月支付,算不算 3 月业绩,必须在口径里回答。语句只是把答案写出来。

场景是方法的试验场

零售、订单、漏斗、对账、活动、同期群、库存、内容、地域,题目不同,四拍不变。变的是时间列、粒度、状态机和空间字段。

订单是状态机,金额挂在某一态上。漏斗每一步都要写清分母。库存是时点,销售是期间,不能加在一起。地域至少有下单、收货、仓、门店、IP 五种,选错一种地图会说谎。

灰度从每天都问的那几句开始。无聊的句子才扛得住每天跑。新场景先写成卡片,再允许进日常。没有卡片的新词,先拒绝。

读完这一辑可以做什么

只选一个场景,做成三张卡片和三道金标准。不要同时开零售和财务。场景一多,口径会互相污染。

先点名状态,再谈金额。金额只挂在某一态上。

WUJI问数

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

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

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