手写 SQL 必刷
先补几个最容易写错的语义(NULL、LEFT JOIN、窗口边界),再刷业务场景题和 LeetCode 精选,最后是大数据量下的写法。
1 周37 题适合:笔试或面试要现场写 SQL
还没开始
1容易写错的语义
9 题这些是「写出来能跑但结果错」的坑,面试官最爱考。
- 077 SQL 的逻辑执行顺序是什么? SQL 与数据库
- 068 SQL LEFT JOIN 条件放在 ON 和 WHERE 有什么区别? SQL 与数据库
- 073 SQL WHERE 和 HAVING 有什么区别? SQL 与数据库
- 113 SQL 中 NOT IN 遇到 NULL,为什么结果可能为空? SQL 与数据库
- 057 SQL COUNT(*)、COUNT(1) 和 COUNT(列) 有什么区别? SQL 与数据库
- 067 SQL UNION 和 UNION ALL 有什么区别? SQL 与数据库
- 062 SQL ROW_NUMBER、RANK 和 DENSE_RANK 有什么区别? SQL 与数据库
- 052 SQL 窗口函数 ROWS 和 RANGE 有什么区别? SQL 与数据库
- 069 SQL GROUP BY 和窗口函数有什么区别? SQL 与数据库
2业务场景题
12 题每题先自己写,再看讲解;连续、留存、漏斗是三大高频。
- 114 SQL 如何计算用户连续登录天数? SQL 与数据库
- 115 SQL 如何实现每个分组的 Top N? SQL 与数据库
- 133 SQL 如何计算次日、7日和30日留存率? SQL 与数据库
- 134 SQL 如何计算漏斗转化率? SQL 与数据库
- 135 SQL 如何计算中位数和分位数? SQL 与数据库
- 143 SQL 如何计算滚动7日活跃用户和移动平均? SQL 与数据库
- 153 SQL 如何合并连续日期和连续区间? SQL 与数据库
- 076 SQL LAG 和 LEAD 怎么做环比、同比? SQL 与数据库
- 241 SQL 如何把用户行为切成会话?30 分钟规则有哪些边界? SQL 与数据库
- 262 SQL 怎么计算同时在线人数峰值?开始和结束同一时刻怎么算? SQL 与数据库
- 281 SQL 怎么统计新增、回流和流失用户?只看当天活跃够吗? SQL 与数据库
- 333 SQL 怎么计算每日累计UV?为什么不能把每日UV累加? SQL 与数据库
3LeetCode 精选
10 题每题都有边界条件,讲解里的「易错点」要看。
- 2 第二高的薪水:没有第二名时怎么返回 NULL SQL 实战 123 题
- 4 分数排名:并列之后名次要连续 SQL 实战 123 题
- 5 连续出现三次的数字:LEAD 看后面两行 SQL 实战 123 题
- 9 每个部门工资最高的员工:并列第一都要 SQL 实战 123 题
- 10 部门工资前三高:前三「档」而不是前三个人 SQL 实战 123 题
- 12 比昨天温度高的日期:相邻日期要真的相差一天 SQL 实战 123 题
- 17 首日次日留存率:AVG 一个布尔值 SQL 实战 123 题
- 18 每个公司的薪水中位数:奇偶数一个公式搞定 SQL 实战 123 题
- 24 员工近三个月累计薪水:ROWS 和 RANGE 的区别 SQL 实战 123 题
- 32 体育馆人流高峰:连续三天以上人数不少于 100 SQL 实战 123 题
4大数据量下怎么写
6 题能把 SQL 写对之后,再讲为什么慢、怎么改。
其他路线:面试前 3 天冲刺离线数仓开发实时计算开发湖仓与 OLAPAI / 大模型数据岗数据治理与平台项目表达与行为面