SELECT / FROM:先把列取出来
SELECT 决定要哪些列,FROM 决定从哪张表取,这是所有查询的起点。
SYSTEM / 01
SIGNALS / 02
Modules
8
structured route
Exercises
66
browser judged
Runtime
Postgres
local engine
Library
4
field notes
QUERY STAGE
WITH retained AS (
SELECT DISTINCT u.id
FROM app_user u
JOIN event e ON e.user_id = u.id
WHERE date_trunc('month', e.ts)
= date_trunc('month', u.signup_date)
+ interval '1 month'
)
SELECT count(*) AS retained_users FROM retained;Result
428
Pattern
cohort + join
Review
Answer key
IDENTITY / 03
一个可以直接跑真实 Postgres 的 SQL 训练产品。用练习建立手感,用资料库拆解业务问题,卡住时对照标准答案复盘。
SELECT 决定要哪些列,FROM 决定从哪张表取,这是所有查询的起点。
先把表格模型想清楚:表是数据集合,行是对象,列是对象的属性。
用日期范围替代函数包裹列,让查询保持 sargable,给索引发挥空间。
WHERE 过滤行,发生在 GROUP BY 前;HAVING 过滤组,发生在聚合后。
Training Route
从基础查询到窗口函数、性能优化和真实业务分析,路线保留学习顺序,也能按问题直接跳转。