2026-10-20 14:31:48
CPA学习数据分析之路中SQL的学习要点总结如下:
一、学习资源选择文字翻译质量差,影响理解效率。
数据库关键词多为日语,增加学习成本。
互联网存在大量免费学习资源,无需额外付费。

实践导向:提供在线编辑器与真实数据库,支持边学边练。
结构化课程:分Basic/Intermediate/Advanced三级,完成挑战可获得Badge,增强简历竞争力。
免费模式:平台盈利依赖数据分析工具服务,学习过程无费用。

错误根源:SQL书写顺序与执行顺序不一致,易导致逻辑错误。
执行流程:FROM → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT
案例修正:原错误语句:
SELECT column_1 FROM database_1 WHERE week = '2014-05-06'修正后:SELECT column_1 FROM database_1 WHERE date_trunc('day', occurred_at) = '2014-05-06'
功能:对特定数据组执行操作(如分组计算、排名),而非全局数据。
关键语法:
PARTITION BY column_name ORDER BY column_name应用场景:
LAG/LEAD:追溯前后行数据(如用户行为分析)。
NTILE:按比例分组(如用户分群、cohort分析)。
基础查询与过滤
SELECT:数据选取,支持列别名(AS)与条件过滤(WHERE)。
JOIN:数据连接,需明确连接类型(INNER/LEFT/RIGHT/FULL JOIN)。
IN:多值过滤,常与DISTINCT结合使用。
ILIKE:模糊匹配(不区分大小写),如ILIKE '%abc%'。
条件逻辑与转换
CASE WHEN:实现IF-ELSE逻辑,支持多条件嵌套。
CAST或:::数据类型转换(如VARCHAR → INTEGER)。
日期处理
DATE_TRUNC:调整时间粒度(如DATE_TRUNC('month', date_column))。
EXTRACT:提取时间单位(如月份、年份)。
高级分析
窗口函数:
ROW_NUMBER():行号分配。
RANK()/DENSE_RANK():排名计算。
NTILE(n):将数据分为n个等分组。

总结:SQL学习需结合理论理解与实战操作,重点攻克执行顺序与窗口函数等难点,优先掌握高频函数以快速提升分析能力。