SQL 道场

SYSTEM / 01

LIVE SQL TRAINING SYSTEMPostgres in browser

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

SQL 道场

一个可以直接跑真实 Postgres 的 SQL 训练产品。用练习建立手感,用资料库拆解业务问题,卡住时对照标准答案复盘。

Practice Notes

资料库精选

不是普通知识点列表,而是围绕真实业务问题整理的查询套路、复盘口径和 SQL 模板。

进入资料库
SQL 基础小白

SELECT / FROM:先把列取出来

SELECT 决定要哪些列,FROM 决定从哪张表取,这是所有查询的起点。

SELECTFROMcolumns
SQL 基础小白

表、行、列:SQL 到底在操作什么

先把表格模型想清楚:表是数据集合,行是对象,列是对象的属性。

tablerowcolumn
性能优化Senior

索引用不上,通常是写法问题

用日期范围替代函数包裹列,让查询保持 sargable,给索引发挥空间。

indexsargabledate range
聚合初级

WHERE 和 HAVING 怎么选

WHERE 过滤行,发生在 GROUP BY 前;HAVING 过滤组,发生在聚合后。

WHEREHAVINGGROUP BY

Scenario Map

从问题到 SQL

用业务问题做入口,直接进入对应练习,把概念变成可以运行的查询。

Case 01

用户增长

这个月新增用户,下个月还有多少人回来?

留存cohort日期
去练这类题
Case 02

订单分析

每位客户贡献多少订单和收入,没下单的人也要出现?

LEFT JOIN聚合NULL
去练这类题
Case 03

性能诊断

为什么按月份查订单慢,索引明明建了却没用?

索引日期范围EXPLAIN
去练这类题