SQL 道场
FIELD LIBRARY

SQL 实战资料库

把常见业务问题、查询模板和概念速查放在一起。卡住时先看结构,再回练习场跑真实 Postgres。

Entries

19

Sections

4

Mode

Practice

SQL Basics

SQL 基础帖

短文章 + 小例子 + 对应练习,先把查询语言的基本动作练稳。

Article Index

实战文章

每篇都围绕一个真实分析任务,先说明思路,再指向对应练习。

用户增长Senior

次月留存:从定义到 SQL

把注册月、活跃月和留存口径拆开,避免把自然月和 30 天窗口混在一起。

cohortdate_truncEXISTS
业务分析Senior

漏斗分析:一次算出浏览到购买

用 FILTER 和去重用户数计算转化率,适合活动复盘和产品路径诊断。

funnelFILTERcount distinct

Query Patterns

SQL 模板

先套结构,再替换表名、字段和条件,降低从问题到 SQL 的启动成本。

基础查询小白

筛选 + 排序 + 取前 N

适合“找最高/最新/最活跃”的列表型问题。

SELECT name, metric
FROM table_name
WHERE condition
ORDER BY metric DESC
LIMIT 10;
WHEREORDER BYLIMIT
关联聚合初级

LEFT JOIN 保留 0 值对象

适合统计“每个客户/每个城市/每个商品”,包括没有行为的对象。

SELECT d.name, coalesce(sum(f.amount), 0) AS total
FROM dim d
LEFT JOIN fact f ON f.dim_id = d.id
GROUP BY d.name;
LEFT JOINcountcoalesce
窗口函数进阶

每组取排名第一

适合每个用户最大订单、每个城市最新记录、每个类别 Top 商品。

SELECT *
FROM (
  SELECT t.*, row_number() OVER (PARTITION BY group_key ORDER BY metric DESC) AS rn
  FROM table_name t
) ranked
WHERE rn = 1;
row_numberPARTITION BYTop N

Concept Ledger

概念速查

把易混点压成短说明,帮助你回到练习场继续写。

性能Senior

EXPLAIN 先看扫描方式

先区分 Seq Scan 和 Index Scan,再看过滤条件、JOIN 方式和估算行数。

EXPLAINSeq ScanIndex Scan