SQL 面试怎么准备 • 窗口函数 • 留存与漏斗 • 归因分析 • Data Engineer • 2026

SQL 面试怎么准备 2026:窗口函数、留存、漏斗、归因高频题型

回答「SQL 面试怎么准备 2026」:拆解 SQL 轮在 DE / DS / Backend 流程中的位置、五步解题框架、窗口函数/去重/留存/漏斗/归因/迟到数据 6 类高频题型与考点、4 类代表题、常见挂点与 7/14/30 天准备路线。

💡 核心要点 (Key Takeaways)

  • 2026 年 SQL 轮评分的重心已从「写对」移到「写对 + 口径清楚 + 边界覆盖」:late arrival、NULL、重复事件几乎是每题必问的 follow-up,纯语法正确只够及格线。
  • 五步解题框架:口径澄清 → 建模(CTE 分层)→ 写查询(先 dedup 再 join 再 aggregate)→ 边界验证 → 追问应答。按框架练 20 道,它会变成肌肉记忆。
  • 6 类高频题型:窗口函数、去重、留存、漏斗、归因、迟到数据。窗口函数考语义(rank vs dense_rank、frame 子句),留存/漏斗考分母口径,归因考口径选择。
  • 中国/海外候选人最典型的 3 个挂点:不澄清口径就开写、只答 happy path 不处理 NULL 和重复、性能追问只会说加索引。
  • 7 / 14 / 30 天三档路线:7 天保 5 道核心题 + 1 场 mock 下限,14 天补综合题与性能/边界专项,30 天加 20+ 道刷量和 4 场混合 mock。

免费获取轮次诊断正在备战 Data Engineer (DE) 面试?免费获取轮次诊断:发你的当前轮次与倒计时,我们先定位卡点,再决定下一步。

这篇适合谁

这篇写给准备 2026 年技术面、需要过 SQL 轮的候选人——Data Engineer(DE)、Analytics Engineer(AE)、Data Scientist(DS)、数据平台方向 Backend SWE 都适用,级别从 New Grad 到 Senior 都覆盖。和单公司面经不同,这篇不深挖某一家的题库,而是直接回答准备期最核心的问题:SQL 面试怎么准备。它给出四样东西:① SQL 轮在整个流程里的位置地图(哪些岗位必考、考法差异、和 coding / pipeline 轮的分工);② 一套五步解题框架(口径澄清 → 建模 → 写查询 → 边界验证 → 追问应答),任何题型都能套;③ 6 类高频题型(窗口函数、去重、留存、漏斗、归因、迟到数据)的可执行准备动作;④ 7 / 14 / 30 天三档路线。轮次结构基于 2026 年公开面经信号聚合整理,不同公司、级别、地区会有出入,以你实际收到的邀请为准。如果你是 DE 方向,更完整的岗位能力模型见 DE 岗位解构

整体框架:SQL 轮在流程里的位置

先纠正一个最常见的误判:SQL 轮不是「会写查询就行」的过场轮。2026 年各岗位的典型分布是:

  • DE / AE(独立一轮,45-60 分钟):通常 1-2 题,和 data modeling、pipeline design 各占一轮。DE 的 SQL 轮考法和分析岗不同——面试官不只看你写得对,还看链路思维:这张表怎么生成、是不是增量、主键是什么、如何去重、消费方是谁。
  • DS(SQL + case study 结合,45-60 分钟):题目从「取数」走向「定义指标 + 写查询 + 解释结论」。SQL 本身常是 medium 难度,但会追问「这个指标下降可能是什么原因、你怎么验证」,终点是分析判断而不是查询本身。
  • Backend SWE(低频):多数 SWE 岗位不单独考 SQL;数据平台 / infra 方向会加一道 medium 的 SQL 题或存储引擎相关的轻题,属于加分项而不是主线。
  • 难度区间:medium 为主,hard 集中在 retention / attribution 的边界情况(跨时区、重复事件、迟到数据)。注意:2026 年信号里,面试官追问的深度比题目本身的难度更能区分候选人——medium 题 + 三层追问是主流考法。
  • 和 pipeline 轮的分工SQL 轮证明「你写得对、写得稳」,pipeline design 轮证明「你能 owner 生产链路」。两轮的挂法完全不同,DE 候选人容易把 pipeline 的答题习惯带进 SQL 轮(一上来就画架构图),也容易反过来——DE 的完整准备顺序见 DE 面试:SQL、ETL 和 Pipeline Design 准备顺序

高频题型与核心方法:五步框架 + 6 类题型

先给框架,再给题型。框架是这篇的核心资产,任何一道 SQL 题都按这五步走:

① 口径澄清:指标定义、时间窗口、唯一键、排除项(测试账号?机器人?)。② 建模:先说 CTE 分层结构再写——deduped → joined → aggregated,让面试官看到你的结构。③ 写查询:从最内层写起,先过滤和去重,再 join,最后聚合——先去重再 join 是控制行数爆炸的第一原则。④ 边界验证:NULL 行去哪了、重复事件会不会被多次计数、跨天/跨时区怎么切。写完主动报一行验证逻辑(行数变化、sample row trace),不等面试官问。⑤ 追问应答:规模变大怎么办、口径变了怎么回填、迟到数据怎么处理。按这个框架练 20 道题,它会变成肌肉记忆。下面是 6 类高频题型,每类都有今天就能开始的动作:

  • 窗口函数(最高频):row_number / rank / dense_rank、lag / lead、rolling sum / avg、first_value / last_value。考点是语义而不是语法——rank 和 dense_rank 在并列时差在哪、frame 用 ROWS 还是 RANGE、默认 frame 是什么。动作:把「每组 top-k」「最近一次」「连续 N 天」三类窗口题各手写 3 遍,练到不看题能默写 frame 子句。
  • 去重:业务主键去重、event_id 去重、取最新一条(row_number() over (partition by 主键 order by event_time desc) 再过滤 rn = 1)。考点是去重时机——join 前去重还是 join 后去重,结果行数和性能完全不同;以及 upsert 语义下「更新覆盖」怎么写。动作:建一张 10 行左右的模拟事件表(故意放重复和 NULL),写 3 种去重口径,互相验证行数差异。
  • 留存:次日 / 7 日 / 30 日留存,自 join 或 datediff 两种写法。考点全在分母:cohort 按注册日还是首次活跃日切、注册日按 UTC 还是用户时区、跨天边界(23:59 的事件算哪天)。动作:手写 1 道 cohort retention,再用 5 个用户的小样本表手工算一遍,对照两种写法是否一致。
  • 漏斗:多步转化(注册 → 激活 → 付费),各步用 datediff + join 串起来。考点是步与步之间的口径:第 2 步必须在第 1 步之后发生才算转化吗?时间窗口多长(24h?7 天?)?用户中途回流重走漏斗算不算新的一次?动作:写 1 道 3 步漏斗,然后追问自己「如果第 2 步可以重复发生,分母怎么定」,把这个答案写下来。
  • 归因:首次触达 vs 末次触达 vs 均匀归因,是 2026 年信号里增长最快的题型(营销数据团队扩招带动)。考点是口径选择:归因窗口多长、多触点按什么排序、跨渠道同一用户怎么去重。动作:用 1 张 touchpoint 表分别实现首次和末次归因,对比两者给出的 campaign ROI 差异,并用一句话解释为什么业务上两种口径都「对」。
  • 迟到数据 / late arrival(所有题的 follow-up 专项):不是独立题库,而是面试官对任何一道题都可能追加的问题。考点:watermark 怎么设、窗口关闭后数据到达怎么回补、重算是否幂等、下游 dashboard 怎么标记「数据截至几点」。动作:给你已经写好的任意一道题,补一段 60 秒的迟到数据回答——怎么发现、怎么重算、怎么通知下游,三句各一句。

💡 如果目标就是 Data Engineer (DE) 岗,按岗位整理的题型分布、轮次路线与准备清单在这里。

Data Engineer (DE) 面试辅助 →

代表题型:2026 信号里反复出现的 4 类

以下是 2026 年公开面经信号里反复出现的题「类型」,只归纳题型和考点,不复刻任何人的具体原题:

  • 经典窗口题(「最近一条」/「连续 N 天」族):「每个用户最近一次订单」「连续登录 7 天的用户」。考点是 gaps and islands 思路(row_number 差值分组)和窗口 + self-join 的组合。这是区分度最低但出现率最高的一类——不会就是硬伤,会了只是及格,区分在你能不能顺手讲出 O(n) 和 O(n log n) 的取舍。
  • 留存 / 漏斗组合题:「上周新增用户的 7 日留存,按获客渠道拆分」。考点是三重嵌套:cohort 切分 × 时间窗口 × 分组维度,最容易在分母上丢分(新增是按注册日还是激活日?渠道取首次还是末次?)。这类题 medium 难度但追问深,是 2026 年 DE / DS 轮的高频主菜。
  • 归因 / 营销分析题:「给一次 campaign 算 ROI」——从触点表到转化表 join,归因口径直接决定结果数量级。考点是口径选择题:面试官不指望你一次写对,而是看你会不会先停下来问「归因窗口和归因方式怎么定」再动手。先问再写,这类题就赢了一半。
  • 表设计 + SQL 混合题(DE / AE 高频):「设计一张订单宽表,并写出每日 GMV 查询」。考点是主键、分区键、去重规则、增量更新方式,再叠加一个依赖这张表的查询。纯分析岗少见,DE 方向要专门准备——表建模的追问细节(SCD、为什么不建大宽表、消费方契约)见 DE SQL / Data Modeling 专题,本篇不复述。

常见挂点:中国 / 海外候选人最易失分的 6 个地方

把公开挂因信号和模拟面试复盘对照,SQL 轮的失分点集中在这 6 个:

  • 不澄清口径就开写:中国候选人最典型的挂法。题目说「计算用户留存」,直接写,写完 15 分钟面试官一句「注册日按哪个时区?」,整个查询推翻重写。SQL 轮前 5 分钟用来问口径是最划算的投资——分母、时间窗口、唯一键、排除项,四样问完再动手。
  • 只答 happy path,不处理 NULL 和重复:left join 产生的 NULL 行、事件表里天然存在的重复上报,你的查询默认把它们当正常数据。面试官追问「你的结果为什么比 dashboard 多 2%」时断片,等于承认没验证过。对策:每道题写完固定报三样——join 前后行数变化、NULL 占比、1 行 sample trace。
  • 窗口函数只背语法不解释语义:能默写 row_number() over (partition by ... order by ...),但被问「rank 和 dense_rank 在并列时差在哪」「ROWS 和 RANGE 的 frame 区别」就卡住。面试官问这个就是在测你是背过的还是真懂。对策:5 类窗口函数各准备 2 分钟语义讲解(含一个反例)。
  • CTE 命名混乱,面试官跟不上结构:CTE 全叫 cte1 / cte2,或者一个 CTE 塞了去重 + join + 聚合三件事。CTE 分层命名(deduped_events → joined_orders → daily_agg)本身就是评分点——它证明你脑子里有结构,而不是在拼查询。
  • 性能追问只答「加索引」:medium 题被追问「数据量涨 10 倍怎么优化」,答不出分区、预聚合、增量计算、先 dedup 再 join,只会说 indexing——在 DE 面试里这是明显不专业的信号。对策:给每道练过的题写一句「10 倍数据量先坏在哪、第一步优化是什么」。
  • 不会主动验证结果:写完直接说「done」,等面试官问「你怎么知道这个是对的」。没有验证习惯在面试官眼里等于「这个结果默认不可信」。对策:把「验证」写进五步框架的第 4 步,mock 时如果没主动报验证逻辑,当场记一个断片点。

准备路线:7 天 / 14 天 / 30 天

按你距第一轮技术面的天数选路线。三个版本的共同原则:五步框架永远优先于题量,5 道走完框架的题胜过 50 道只写到 AC 的题;最后 1-2 天只留 mock 和状态调整,不学新题型。

  • 7 天(保下限版):D1 按五步框架做 2 道窗口题(每组 top-k + 连续登录),强制走完「口径 → 建模 → 写 → 验证」并全程口述;D2-D3 去重 + 留存各 1 道,重点练「先去重再 join」和分母口径;D4-D5 漏斗 + 归因各 1 道,重点练「先问口径再写」;D6 给这 5 道题各补迟到数据和性能追问的 60 秒答案;D7 完整 mock 45 分钟(1 窗口 + 1 分析组合题 + 追问),录音复盘。这个版本只保下限:口径不跳、边界不空、验证主动。
  • 14 天(标准版):在 7 天基础上——D8-D10 做 3 道综合题(留存按渠道拆分、campaign 归因 ROI、表设计 + 查询混合),每道练到 45 分钟内讲完口径、结构和边界;D11 性能专项:给已写过的 5 道题各写「数据量 10 倍」优化方案(分区、预聚合、增量、物化视图四选一讲清取舍);D12 边界专项:给 5 道题各写 NULL / 重复 / 跨时区 / 迟到 4 类边界处理;D13 mock 一场完整 SQL 轮(2 题 + 三层追问);D14 缓冲日,检查设备日程,早睡。
  • 30 天(系统版):在 14 天基础上——D15-D20 按题型刷量:6 类题型每类 3-5 道(共 20+ 道),每道记录「卡点 + 我的解和最优解差在哪」,周末重做卡点最多的 3 道;D21-D24 跨题型混合 mock:4 场,每场 1 窗口题 + 1 组合题,练时间分配(每题 20 分钟写完 + 5 分钟验证);D25-D26 DE 方向衔接专项:练 SQL 轮答完怎么自然过渡到 pipeline 追问(幂等、回填、消费方契约),非 DE 方向改为 BQ 和动机题准备;D27 复盘 4 场 mock,把断片点、口径漏洞各列清单,逐项补答案;D28 建立自己的「口径 checklist」(4-10 条,面试前 10 分钟过一遍);D29-D30 缓冲 + 状态调整。

FAQ:SQL 面试怎么准备 2026,5 个高频问题

Q1:SQL 面试怎么准备 2026?和以前有什么变化?
核心变化是「口径优先、边界必问」:2026 年公开信号里,面试官几乎每题都会追问 late arrival 和 NULL / 重复处理,纯语法正确只够及格线。准备方法本身没变——五步框架 + 6 类题型 + mock,但每道题必须把边界和性能追问练进答案里,而不是等面试官问。换句话说:以前是「写完再解释」,现在是「解释是答案的一部分」。

Q2:SQL 面试一般考几道题?难度如何?
独立 SQL 轮通常是 45-60 分钟、1-2 题:1 题深挖(medium + 三层追问)或 2 题各 20 分钟(medium 为主)。hard 集中在 retention / attribution 的边界情况。DS 岗位常把 SQL 和 case study 结合,DE 岗位常把 SQL 和表设计结合,Backend 多数不单独考。具体以你实际收到的邀请为准。

Q3:hard 题做不出来正常吗?
正常。2026 年 SQL 轮的评分点不在「AC 了 hard」,而在四件事:口径有没有先确认、结构是否清晰可维护、边界有没有主动覆盖、追问接不接得住。一道 medium 做到「主动验证 + 讲清边界 + 接住 2-3 层追问」,通过率比硬啃 hard 题高得多。卡住时的表达(复述题目 → 缩小范围 → 口述推理 → 要 hint)本身就是评分点。

Q4:DS 和 DE 的 SQL 轮准备有区别吗?
有,而且很大。DS 的 SQL 终点是「结论」——从查询到指标解释到业务建议,题目偏分析组合,追问往「指标为什么波动、怎么验证假设」走;DE 的 SQL 终点是「生产可信」——这张表怎么生成、是否幂等、如何回填、消费方契约,追问往「迟到数据、schema 变更、成本」走。同一道留存题,DS 要答「留存下降可能是什么原因」,DE 要答「这张留存表每天怎么算、迟到数据怎么补、下游怎么感知口径变更」。DE 的完整准备顺序见站内 DE 面试 SQL / ETL / Pipeline 专题。

Q5:刷题平台怎么选?需要刷多少道?
平台不重要,题型覆盖和追问练习才重要。20-40 道覆盖 6 类题型、每道走完五步框架 + 边界追问,比无脑刷 100 道更有效。优先级排序:窗口函数 > 去重 > 留存 > 漏斗 > 归因 > 迟到数据(最后这个是 follow-up 专项,不是独立题库,挂在每道题上练)。判断练没练够的标准只有一个:mock 里能不能在 20 分钟内把一道没见过的 medium 题走完五步、并且验证是主动报出来的。

Editorial & Verification

📋 资料来源与审校说明

2026-09-06 更新:新增 3 个外部来源(PostgreSQL 窗口函数教程、PostgreSQL 聚合函数教程、LeetCode Top SQL 50),分别对应「高频题型与核心方法」「代表题型 / 准备路线」章节;移除原无链接的「公开面经信号聚合」条目,现列来源均可追溯;正文各题型考点均按 SQL 标准语义归纳,未把单一公司考法写成通用结论。首版:明确本篇定位为「SQL 面试怎么准备 2026」的方法类指南,覆盖 SQL 轮次定位、五步解题框架、6 类高频题型与考点、4 类代表题、常见挂点与 7/14/30 天准备路线。

  • PostgreSQL 官方文档:窗口函数教程:PostgreSQL 官方窗口函数教程(row_number / rank / dense_rank、lag / lead、rolling 聚合)。正文「高频题型与核心方法:五步框架 + 6 类题型」(窗口函数方向)章节以它作为窗口函数语义与用法的参照。
  • PostgreSQL 官方文档:聚合函数教程:PostgreSQL 官方聚合函数教程(GROUP BY、聚合函数与分母口径)。正文「高频题型与核心方法」(去重、留存等聚合口径题)章节以它作为聚合语义与口径的参照。
  • LeetCode Top SQL 50 学习计划:LeetCode 官方 SQL 面试题库(50 题,覆盖窗口函数、留存等高频题型)。正文「代表题型:2026 信号里反复出现的 4 类」与「准备路线」章节建议按该题库练题;具体题目以题库当前页面为准。
  • DE 面试:SQL、ETL 和 Pipeline Design 准备顺序:站内 DE 方向 SQL 与 pipeline 衔接专题,本篇正文引用其结论,不重复展开。
  • DE SQL / Data Modeling 面试专题:站内窗口函数、去重、SCD 与建模追问细节,本篇引用其考点划分,不复述。
  • DE 岗位解构:站内 DE 岗位能力模型,用于说明 SQL 轮在 DE 全轮次中的位置与权重。
DW
Data Engineering
David Wang·前 Netflix / Databricks Staff DE

8 年+数据工程经验,曾在 Netflix 数据平台团队和 Databricks 担任 Staff DE,主导过日处理 TB 级数据的基础设施项目,擅长把抽象的 DE 面试题拆解为 pipeline 设计、容量估算、容错策略等可训练动作。

累计辅导 500+ 数据工程候选人Stanford, CS 硕士
本文由 David Wang 审校与整理

📚 推荐延伸阅读 (Related Guides)

PayPal DE 面经 2026:SQL、Pipeline 和 Fraud Data

PayPal DE 面经 2026:拆解 SQL(对账口径、金额精度)、数据工程 Coding 与 Pipeline / Fraud Data System Design 考点,附 VO 4 轮结构、常见挂点和 7/14/30 天准备路线。

DE 面试考什么 2026:SQL、Pipeline、Data Modeling 全轮次拆解

回答「DE 面试考什么 2026」:SQL、Pipeline Design、Data Modeling 与 DE Coding 的题型方向与核心方法,常见挂点与 7/14/30 天准备路线,适合 Data Engineer、Analytics Engineer 等数据岗位候选人。

Reddit 面经 2026:DE / SWE 店面、VO 和全套流程

Reddit 面经 2026 全流程整理:DE / SWE 候选人的店面、Backend Coding VO、题型雷达、高频题方向、公开面经信号读法、常见挂点与 7 / 14 / 30 天准备路线。

💼 完整服务与价格我们提供 OA 代写($199 起)VO 辅助($299 起)VO 代面($499 起)30 分钟免费咨询:按目标岗位、公司与轮次匹配具备相关经验的导师,覆盖 Coding、System Design、ML Design 与 BQ;具体导师与背景以接单前书面确认为准。

查看服务详情 →
已复制微信号!