SQL 与数据库 面试题112 道
窗口函数、JOIN、去重、留存漏斗、MySQL 索引与事务
- 037 SQL Join 后数据量翻倍,你怎么排查?
- 042 SQL 去重怎么做?DISTINCT 和 ROW_NUMBER 怎么选?
- 047 SQL EXISTS、IN 和 JOIN 怎么选?
- 052 SQL 窗口函数 ROWS 和 RANGE 有什么区别?
- 057 SQL COUNT(*)、COUNT(1) 和 COUNT(列) 有什么区别?
- 062 SQL ROW_NUMBER、RANK 和 DENSE_RANK 有什么区别?
- 067 SQL UNION 和 UNION ALL 有什么区别?
- 068 SQL LEFT JOIN 条件放在 ON 和 WHERE 有什么区别?
- 069 SQL GROUP BY 和窗口函数有什么区别?
- 070 SQL GROUPING SETS、ROLLUP 和 CUBE 有什么区别?
- 073 SQL WHERE 和 HAVING 有什么区别?
- 074 SQL CASE WHEN 有哪些常见坑?
- 075 SQL COALESCE 和 NULLIF 怎么用?
- 076 SQL LAG 和 LEAD 怎么做环比、同比?
- 077 SQL 的逻辑执行顺序是什么?
- 078 SQL PIVOT 和 UNPIVOT 有什么区别?
- 113 SQL 中 NOT IN 遇到 NULL,为什么结果可能为空?
- 114 SQL 如何计算用户连续登录天数?
- 115 SQL 如何实现每个分组的 Top N?
- 116 COUNT(DISTINCT) 数据量很大时怎么优化?
- 133 SQL 如何计算次日、7日和30日留存率?
- 134 SQL 如何计算漏斗转化率?
- 135 SQL 如何计算中位数和分位数?
- 143 SQL 如何计算滚动7日活跃用户和移动平均?
- 144 SQL 执行计划怎么看?如何定位慢查询?
- 153 SQL 如何合并连续日期和连续区间?
- 154 SQL 相关子查询和普通子查询有什么区别?
- 163 SQL 递归 CTE 怎么处理层级和路径?
- 164 事务隔离级别和 MVCC 怎么理解?
- 173 SQL 联合索引的最左匹配怎么理解?
- 174 数据库 Nested Loop、Hash Join 和 Merge Join 怎么选?
- 183 SQL MERGE INTO 如何实现增量更新?
- 184 覆盖索引和 Index Only Scan 怎么理解?
- 201 SQL CTE 一定会物化吗?MATERIALIZED 和 NOT MATERIALIZED 怎么选?
- 202 SQL 分区裁剪为什么会失效?
- 211 SQL Join 重排为什么可能失效?
- 221 SQL 深分页为什么慢?游标分页怎么设计?
- 222 SQL 金额计算为什么有尾差?DECIMAL 怎么设计?
- 241 SQL 如何把用户行为切成会话?30 分钟规则有哪些边界?
- 242 SQL 展开多个数组为什么会翻倍?怎么保留位置对应关系?
- 249 MySQL redo log、undo log 和 binlog 有什么区别?CDC 为什么读 binlog?
- 251 SQL 补齐缺失日期后,怎么向前填充最近有效值?
- 252 SQL 怎么找出买齐所有指定商品的用户?
- 254 埋点数据怎么去重?event_id、重试和业务重复怎么区分?
- 261 SQL EXCEPT 和 NOT EXISTS 有什么区别?差集对账为什么会漏重复?
- 262 SQL 怎么计算同时在线人数峰值?开始和结束同一时刻怎么算?
- 271 SQL LAST_VALUE 为什么取不到最后一条?窗口边界怎么写?
- 272 SQL 怎么稳定抽取百分之一用户?随机抽样和哈希抽样有什么区别?
- 281 SQL 怎么统计新增、回流和流失用户?只看当天活跃够吗?
- 282 SQL 按有效期关联维表,为什么一笔订单会匹配两条记录?
- 283 SQL 用 MAX 拼出最新记录靠谱吗?为什么字段来自不同的行?
- 291 SQL 同比一定是日期减一年吗?闰年和同星期怎么对齐?
- 292 SQL FULL JOIN 对账,怎么区分缺了一行和字段本来就是 NULL?
- 299 数据开发怎么写测试?SQL 单测、集成测试和端到端验收怎么分工?
- 301 SQL 怎么求最长连续增长天数?只判断今天大于昨天够吗?
- 302 SQL Join 两边类型不一致会怎样?隐式转换为什么既慢又可能算错?
- 303 用户账号合并后,历史UV和付费人数要重算吗?OneID怎么保留版本?
- 311 SQL 多列去重能直接拼接吗?COUNT DISTINCT 为什么会少算?
- 312 SQL 怎么取每月最后一天?月末和最后一个工作日有什么区别?
- 321 SQL NTILE 能按金额均分用户吗?同分用户为什么会被分到不同桶?
- 322 SQL 聚合成数组为什么顺序会变?外层 ORDER BY 能管住数组内部吗?
- 331 SQL 日均值能直接再求平均吗?月均客单价为什么会算错?
- 332 SQL 统计首单用户,为什么先筛商品再排序会算错?
- 333 SQL 怎么计算每日累计UV?为什么不能把每日UV累加?
- 334 SQL 排名时 NULL 应该放哪里?加一个 DESC 为什么可能选错记录?
- 341 SQL 怎么统计跨天在线时长?按开始日期分组为什么会算错?
- 342 SQL 判断一组检查全部通过,为什么只看 MIN 或 BOOL_AND 不够?
- 01-01 ROW_NUMBER、RANK、DENSE_RANK 到底有什么区别?
- 01-02 怎么查连续登录N天的用户?
- 01-03 行转列和列转行,一篇讲透
- 01-04 用户留存率怎么算?从公式到SQL一篇讲清
- 01-05 累计求和与滑动窗口,窗口函数的高阶玩法
- 01-06 GROUP BY的3个隐藏陷阱,你踩过几个?
- 01-07 同比环比怎么算?从日环比到跨年同比全覆盖
- 01-08 大表JOIN慢到爆?聊聊MapJoin和数据倾斜
- 01-09 漏斗分析怎么写?从埋点到转化率一条SQL搞定
- 01-10 一道综合题收官:用SQL实现RFM用户分层
- 01-11 子查询 vs JOIN,到底该用哪个?
- 01-12 NULL的各种坑,90%的人至少踩过一个
- 01-13 3张表JOIN在一起,执行顺序到底是什么?
- 01-14 分区表设计得好,查询快100倍不是梦
- 01-15 日期函数全家桶,一篇搞定面试和工作
- 01-16 UNION ALL vs UNION,别再无脑用UNION了
- 01-17 SQL跑得慢?先看执行计划再说
- 01-18 PARTITION BY 和 GROUP BY 到底有什么区别?
- 01-19 WITH子句(CTE)不只是让SQL好看,还有这些门道
- 01-20 收官篇:一张图串起SQL面试所有知识点
- 07-01 一条查询突然变慢了,你怎么排查?
- 07-02 订单表5000万行查询越来越慢,你怎么办?
- 07-03 两个事务同时改同一条数据,一个超时失败了——怎么排查死锁?
- 07-04 主从延迟导致读到过期数据,你怎么解决?
- 07-05 高并发下单时库存超卖了,怎么用MySQL保证不超卖?
- 07-06 同一个事务里先更新再查询,查到的是旧数据——事务隔离级别到底怎么回事?
- 07-07 为什么用B+树而不是Hash索引?什么场景用Hash更好?
- 07-08 我有三个查询条件,组合索引怎么设计?顺序怎么定?
- 07-09 Binlog是什么?它和大数据有什么关系?
- 07-10 一主多从怎么设计?什么时候加从库,什么时候加缓存?
- 07-11 分页查询LIMIT 1000000, 20特别慢,怎么优化?
- 07-12 给大表加字段加索引,结果库卡死了——Online DDL怎么做?
- 07-13 突然报“Too many connections”,连接池怎么配?
- 07-14 把MySQL数据导入到Hive,有哪些方案?
- 07-15 MySQL 8.0有哪些值得关注的新特性?
- 07-16 生产环境的MySQL怎么备份?丢了数据怎么恢复?
- 07-17 字符集和Collation在生产环境踩过什么坑?
- 07-18 Buffer Pool怎么调优?内存分配有什么讲究?
- 07-19 SQL注入是什么?生产环境怎么防御?
- 07-20 请描述你在项目中是怎么使用MySQL的
- 16-02 GROUP BY做统计,一个Task卡死跑不完——COUNT(DISTINCT)为什么特别容易倾斜?
- 16-03 两张大表JOIN,某个key有500万条——JOIN倾斜的三种解法怎么选?
- 16-04 JOIN字段里有15%是NULL——NULL值倾斜怎么处理?
- 16-14 5张表连续JOIN,不知道倾斜在哪里——多表JOIN链路的系统性排查方法
- 16-16 面试官追问「你能现场写一个处理倾斜的SQL吗」——手写代码题怎么过?
没有匹配的题目,换个关键词试试。