🔥 面试现场还原
“计算每月订单量、总金额及环比增长率”——这道出现率高达87%的SQL考题,竟让3年经验的候选人翻车!上周面试中:
-
候选人A:嵌套5层子查询,执行计划爆炸💥
-
候选人B:忘记处理除零错误,结果出现
Infinity
😱 -
候选人C:用Python思路写SQL,性能血崩⏳
方法一:使用窗口函数 (推荐)
-- 步骤1: 计算基础月度数据
WITH monthly_data AS (
SELECT
DATE_FORMAT(order_date, 'yyyy-MM') AS order_month,
COUNT(order_id) AS order_count,
ROUND(SUM(amount), 2) AS total_amount
FROM orders
GROUP BY DATE_FORMAT(order_date, 'yyyy-MM')
)
-- 步骤2: 计算环比增长率
SELECT
order_month,
order_count,
total_amount,
-- 订单数量环比
ROUND(
(order_co