面试一开始,面试官把题目和表结构直接贴出来,让我先自己看。

没有任何提示,我先快速扫了一眼,确认这是一个典型的信用卡申请数据:Application 是主表,另外两张是状态和产品的 lookup 表。
面试官第一句话是:
“Walk me through what you understand.”
我简单说了一下数据含义:用户申请某个产品,有状态变化,有渠道和 campaign,用来分析申请流程和转化。
他点头,直接开始问。
第一问是统计 completed 的申请数量。
Q1 How many applications are-completed regardless of.product?
我没有直接写,而是先确认 completed 是通过 description 判断。这个点如果不问,很容易写错。
思路很简单:连状态表,筛选 completed,然后 count。
第二问是 2024 年 completed 申请的处理时长,按产品分。
Q2 How long does completed applications take in-2024 for each product?
我先确认时间定义,是从 AppDate 到变成 completed 时的 StatusDate。
接下来就是筛选 2024 + completed,算时间差,再按产品聚合。
面试官中间问了一句,如果一个申请有多次状态变化怎么办。
我解释说当前表记录的是状态结果,直接用 completed 那条记录就可以。
第三问是找出 DM 渠道、campaign 2401 的 declined 申请。
Q3 Please-list-all declined-credit card applications from DM-channeland.campaign.2401.
这题就是纯筛选,我顺手把产品表也 join 进来,让结果更清晰。
第四问是每个用户最新的一条申请。
Q4 For each-customer, please list their.latest-application.
我先确认 latest 是按 AppDate,然后直接用“每个用户排序取第一条”的思路。
整个面试没有难度特别高的 SQL,节奏很关键。
每一问我都先确认业务定义,再说思路,基本没有被打断。
这种题很多人会觉得简单,现场直接开写,很容易因为理解偏差被连续追问,最后越写越乱。
这种 SQL 面试我们这边做得比较多,核心不是帮你写答案,是在关键节点帮你把思路和表达兜住”。
我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

