方法 · 2026 年 2 月 9 日 · 9 分钟
先跑通最小闭环:一句话、一张表、一条 SELECT
复杂问数的失败,常常不是因为不会写 JOIN,而是最小闭环从来没有跑通。最小闭环只有三样:一句完整的话、一张对得上的表、一条只读 SELECT。三样齐了,再加第二张表。
一句话要完整
时间、指标、范围。缺一就补,不要用默认值偷偷补。默认值会在对账时变成幽灵条件。
一张表要对得上
先列出候选表,看注释、看抽样。抽样里的值对不上业务口头,就换表,不要硬解释。
一条 SELECT 要能读
不要一上来窗口函数。COUNT、SUM、WHERE、GROUP BY 够用。跑通以后,再为排名和占比加窗口。
一次完整的问法可以先写成下面这样:
users 表里,2026 年 2 月注册成功的用户有多少?
落到语句上,草稿常常是:
SELECT COUNT(*) AS new_users
FROM users
WHERE registered_at >= TIMESTAMP '2026-02-01 00:00:00'
AND registered_at < TIMESTAMP '2026-03-01 00:00:00'
AND register_status = 'success';
最小闭环像识谱。谱没认清就写交响乐,只会得到热闹的错误。
入门时我给自己定的边界
问数可以学得很花。入门阶段我只守三样:问题能转发、结构能看见、语句能当收据。公开长文里还有代理循环、多层架构、图表生成。那些是工程展开,不是入门必做。
边界还有一条:不把问数当成闲聊机器人。闲聊允许含糊,问数的含糊会变成默认值,默认值会变成错数。错数一旦进了汇报,纠正成本高于当初把问题问完整。
练习用假数据。真库上只跑已经钉死的卡片。本站公开的是手艺,不是连接。把这两者分开,入门才不会在第一周就踩到权限和隐私。
读完这一辑可以做什么
选一张假的订单表。连续五天问同一句「昨天已支付金额」。把锚点、状态值、含不含今天写成卡片。五天的数能对上你自己的手工合计,入门才算落地。
一张表问不对,三张表只会错得更热闹。