周测 + 第一份经营周报

第一周结束。老板要一份「本周经营周报」,你就用它来验收自己这周学的一切。

学 10 min
练 70 min
盘 40 min
共 120 分钟

复盘 · 10 min

  1. 01翻一遍本周 notes.md,标出还讲不利索的点

测评 + 周报 · 110 min

  1. 70 分钟闭卷做 30 道单表查询题(LeetCode 简单难度 + 自出题)
    参考答案

    闭卷 70 分钟,30 题做完再对答案,中途不查任何资料。出题范围就是 D1–D6:SELECT/WHERE/ORDER BY/LIMIT、NULL 三值逻辑、聚合与 GROUP BY、CASE、日期函数与补零。

  2. 错题全部重写一遍,写进 mistakes.md
    参考答案

    重写错题时先默写「我当时的思路」,再写正确答案,两句并排放--差异在哪一步,就是下次的检查点。

  3. 错题归因:分成「没懂概念 / 记不住语法 / 看错题意」三类统计
    参考答案

    归因模板:① 没懂概念(回当天「学」栏重看并口述一遍);② 记不住语法(连续 3 天每天默写一次);③ 看错题意(以后读题先圈名词和限定词)。统计三类各占几个,集中在哪类就补哪类。

  4. 写出给老板的周报:总单量 / GMV / 状态分布 / 近 7 天趋势(每日一行,缺日补 0)
    参考答案

    周报的每个数字都来自这三条查询;面试官追问「这个占比怎么算的」你要能当场说出分母是什么。

    -- 总单量 / GMV
    select count(*) as 总单量, sum(total_amount) as gmv from orders;
    
    -- 状态分布(含占比)
    select coalesce(status::text, '未知') as 状态,
           count(*) as 单数,
           round(count(*) * 100.0 / sum(count(*)) over (), 1) as 占比
    from orders
    group by 1
    order by 单数 desc;
    
    -- 近 7 天趋势(缺日补 0)
    select d::date as 日期,
           count(o.id) as 单数,
           coalesce(sum(o.total_amount), 0) as gmv
    from generate_series(current_date - 6, current_date, interval '1 day') d
    left join orders o
      on o.created_at >= d and o.created_at < d + interval '1 day'
    group by d
    order by d;
  5. 把「逻辑执行顺序」和「NULL 三值逻辑」各写成 5 句话的口述稿
    参考答案

    口述稿结构:一句话结论 -> 为什么这样设计 -> 一个例子 -> 一个边界/反例。每篇念出来控制在 60 秒内,念不顺就是还没懂。

过关标准 30 题正确 ≥ 24 题;周报里每个数字都能对应到一条你写过的查询。