SQL课程(分析师专用):快速挑选、学习、应用

发布: (2026年4月28日 GMT+8 08:02)
5 分钟阅读
原文: Dev.to

Source: Dev.to

面向分析师的 SQL 与后端工程师的 SQL

  • 分析师 SQL:读取杂乱数据,构建可信的指标,并传达可被他人复现和审计的结果。
  • 后端 SQL:设计完美的模式,调优索引,编写存储过程等。这些对刚入行的分析师来说优先级较低。

入门时可以降级的内容

  • 深入的规范化理论
  • 存储过程和用户自定义函数(除非你的工作需要)
  • 高级性能调优(以后再学)

如果一门课程在你写了 50 条真实查询之前就花好几周讲数据库内部原理,那它可能并不适合分析师。

与工作相关的学习路径(平台无关)

第 1 周 – 查询基础

  • SELECTWHEREORDER BYLIMIT
  • CASE WHEN 进行分箱
  • 基本聚合函数:COUNTSUMAVGMIN/MAX

第 2 周 – 连接与数据形态

  • INNERLEFT,以及何时使用 FULL OUTER
  • DISTINCTROW_NUMBER() 去重
  • 处理多对多连接而不导致指标膨胀

第 3 周 – 分析模式

  • 窗口函数:ROW_NUMBERLAG/LEAD、累计总计
  • 按注册周/月份划分的 Cohort 与留存
  • 漏斗查询(步骤完成情况)

第 4 周 – 可靠性与交付

  • 查询可读性:CTE、命名、统一格式
  • 合理性检查与对账
  • 将结果导出到 BI 工具 / notebook

主观观点: 窗口函数是“会查询”与“会分析”之间的分水岭。任何回避窗口函数的面向分析师的课程都会让你力量受限。

留存分析 – 可复用模式

-- PostgreSQL syntax
WITH cohorts AS (
  SELECT
    user_id,
    DATE_TRUNC('month', created_at) AS cohort_month
  FROM users
),
activity AS (
  SELECT
    e.user_id,
    DATE_TRUNC('month', e.event_at) AS activity_month
  FROM events e
  GROUP BY 1, 2
),
cohort_activity AS (
  SELECT
    c.cohort_month,
    a.activity_month,
    COUNT(DISTINCT c.user_id) AS active_users
  FROM cohorts c
  JOIN activity a
    ON a.user_id = c.user_id
   AND a.activity_month >= c.cohort_month
  GROUP BY 1, 2
),
cohort_size AS (
  SELECT
    cohort_month,
    COUNT(*) AS cohort_users
  FROM cohorts
  GROUP BY 1
)
SELECT
  ca.cohort_month,
  ca.activity_month,
  ca.active_users,
  cs.cohort_users,
  ROUND(1.0 * ca.active_users / cs.cohort_users, 4) AS retention_rate
FROM cohort_activity ca
JOIN cohort_size cs USING (cohort_month)
ORDER BY 1, 2;

为什么这很重要

  • 可读性: 使用 CTE 将逻辑拆分为多个步骤。
  • 准确性: 通过 COUNT(DISTINCT …) 避免重复计数。
  • 灵活性: 可以轻松改为按周划分 Cohort,或使用不同的“活跃”定义。

如果你的课程在几周内都达不到这种查询水平,那它就不是以分析师为中心的。

选课指南 – 检查清单

  • 是否使用 真实数据集
  • 是否在早期就教授 窗口函数CTE
  • 练习是否 评分且可迭代
  • 是否说明 方言差异(Postgres、BigQuery、MySQL 等)?
  • 你能否 在可用时间内完成

平台推荐

  • DataCamp – 适合短小、交互式的练习,能快速培养肌肉记忆。
  • Udemy – 如果需要更广的课程目录并想匹配特定工具(Postgres、BigQuery、SQL Server),可选,但要挑选高质量的讲师和评价。
  • Coursera – 适合喜欢更长、更有证书导向课程并提供系统化学习路径的学习者。

结论: 选定一个平台,完成单一学习路径,并立刻把所学应用到你关心的数据集(工作数据、公开数据或副项目)。这种“应用”步骤会把课程转化为真正的分析师竞争力。

0 浏览
Back to Blog

相关文章

阅读更多 »

消息与通知工具比较 (2026)

PostgreSQL LISTEN/NOTIFY ✅ 优点 - 内置于数据库,无需额外安装。 - 严格事务化:只有在数据满足条件时才会发送消息。