新書推薦:
《
国术健身 易筋经
》
售價:HK$
33.4
《
古罗马800年
》
售價:HK$
188.2
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:HK$
66.1
《
控制权视角下的家族企业管理与传承
》
售價:HK$
87.4
《
冯友兰和青年谈心系列
》
售價:HK$
167.3
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:HK$
77.3
《
认知行为疗法:心理咨询的顶层设计
》
售價:HK$
99.7
《
FANUC工业机器人装调与维修
》
售價:HK$
99.7
|
編輯推薦: |
一句话推荐
本书介绍了运用SQL进行各类数据分析的方法。
编辑推荐
随着数据、算力和云数据仓库的激增,对于有经验的分析师或数据科学家来说,SQL已经成为一个更加不可或缺的工具。本书展示了提高SQL技能、解决问题,以及在工作流程中充分利用SQL新的和隐藏的方法。
你将学习如何以创新的方式使用常用的和特殊的SQL函数(如连接、窗口函数、子查询和正则表达式),以及如何用可理解的代码,通过组合SQL技术更快地完成目标。如果你在平常工作中也会用到SQL数据库,本书会是必b备的参考资料。
专家推荐
“虽然我已经在数据分析领域工作超过20年,也对不同的SQL环境无比熟悉,在阅读本书的过程中仍有无数个令我惊喜的‘啊哈’时刻。我会将此书买给我当前以及未来团队中的每一位成员。”
——Stuart Kim-Brown PhD,
B2C和SaaS产品分析专家
“终于有一本专门为想从事数据分析相关工作的人所写的介绍SQL的书籍出版了。任何一位热爱数据的分析师或数据科学家都会从中受益,学会运用SQL进行各类数据分析的方法。详细的示例和代码也帮助读者更快地学习运用SQL进行数据分析。”
——Da
|
內容簡介: |
本书的主要内容有:学习准备分析数据的关键步骤。使用SQL的日期和时间操作进行时间序列分析。使用同期群分析研究群体如何随时间变化。使用SQL的强大功能和操作符进行文本分析。检测数据中的异常值,并用代替值替换它们。使用实验分析建立因果关系,也称为A/B测试。
|
關於作者: |
Cathy Tanimura有在不同行业领域超过20年的数据分析相关经验,从金融到B2B软件再到客户服务。Cathy带着用数据将人们与企业更紧密地连接起来的信念和热情,帮助多个头部科技公司搭建了数据基础架构并管理数据团队。她对用SQL在主流的开源数据库进行数据分析有着丰富的经验。
|
目錄:
|
目录
前言 .1
第1 章 用SQL 来做数据分析 7
1.1 什么是数据分析 . 7
1.2 为什么用SQL 10
1.2.1 SQL 是什么 10
1.2.2 SQL 的优势 13
1.2.3 SQL 与R 和Python 的对比 14
1.2.4 SQL 作为数据分析流程中的一部分 . 16
1.3 数据库类型以及如何使用 19
1.3.1 行存储数据 20
1.3.2 列存储数据 22
1.3.3 其他的数据结构类型 23
1.4 总结 25
第2 章 为数据分析做准备 26
2.1 数据类型 27
2.1.1 数据库的数据类型 . 27
2.1.2 结构化和非结构化数据 29
2.1.3 定量和定性数据 . 30
2.1.4 第一方、第二方和第三方数据 31
2.1.5 稀疏数据. 32
2.2 SQL 查询结构 33
2.3 数据剖析:分布 36
2.3.1 直方图和频率 37
2.3.2 分箱 40
2.3.3 n-Tiles 43
2.4 数据剖析:数据质量 . 46
2.4.1 检测重复数据 47
2.4.2 用GROUP BY 和DISTINCT 来处理重复数据 49
2.5 准备:数据清理 50
2.5.1 通过CASE 转换来清理数据 51
2.5.2 数据类型转换 54
2.5.3 处理空值:coalesce, nulliff, nvl 函数 57
2.5.4 缺失的数据 61
2.6 准备:数据构形 66
2.6.1 你需要怎样的输出:BI,可视化,统计,机器学习 67
2.6.2 用CASE 语句进行数据透视 68
2.6.3 用UNION 语句来取消数据透视 70
2.6.4 pivot(透视)和unpivot(取消透视)函数 73
2.7 总结 75
第3 章 时间序列分析 .76
3.1 日期、日期时间和时间操作 77
3.1.1 时区转换. 78
3.1.2 日期和时间戳的格式转换 . 80
3.1.3 日期相关的计算 . 85
3.1.4 时间相关的计算 . 88
3.1.5 连接不同来源的数据 90
3.2 零售销售数据集 91
3.3 对数据进行趋势分析 . 92
3.3.1 简单的趋势 93
3.3.2 比较时间序列的组成部分 . 95
3.3.3 计算占总数的百分比 . 104
3.3.4 运用索引以查看随时间变化的百分比 108
3.4 滚动时间窗口 . 113
3.4.1 计算滚动时间窗口 115
3.4.2 稀疏数据的滚动时间窗口 121
3.4.3 计算累计值 . 124
3.5 季节性分析 127
3.5.1 同期比较:YoY 和MoM . 129
3.5.2 同期比较:与去年的同月进行对比 132
3.5.3 与多个以前的周期做对比 137
3.6 总结 . 140
第 4 章 同期群分析 141
4.1 同期群:一种有用的分析框架 142
4.2 立法者数据集 . 145
4.3 留存 . 146
4.3.1 基本留存曲线的 SQL 148
4.3.2 调整时间序列以提高留存率的准确性 152
4.3.3 从时间序列数据构建同期群 158
4.3.4 从单独的表构建同期群 164
4.3.5 处理稀疏同期群 168
4.3.6 用除第一个日期以外的其他日期定义同期群 173
4.4 相关同期群分析 176
4.4.1 生存 177
4.4.2 返回或重复购买行为 . 181
4.4.3 累积计算 187
4.5 透过同期群看横断面分析 . 191
4.6 总结 . 200
第 5 章 文本分析 201
5.1 为什么使用 SQL 进行文本分析 . 201
5.1.1 什么是文本分析 202
5.1.2 为什么 SQL 是文本分析的好选择 202
5.1.3 什么情况下 SQL 不是一个好的选择 . 204
5.2 UFO 目击数据集 205
5.3 文本特征 206
5.4 解析文本 208
5.5 文本转换 214
5.6 在较大的文本块中查找元素 223
5.6.1 通配符匹配:LIKE,ILIKE 223
5.6.2 精确匹配:IN,NOT IN . 229
5.6.3 正则表达式 . 232
5.7 构建与重塑文本 250
5.7.1 拼接 250
5.7.2 重塑文本 254
5.8 总结 . 258
第6 章 异常检测 259
6.1 SQL 异常检测的能力和限制 260
6.2 数据集 261
6.3 检测异常值 262
6.3.1 通过排序查找异常 263
6.3.2 通过计算百分比和标准偏差发现异常 266
6.3.3 通过作图可视化查找异常 274
6.4 异常的形式 283
6.4.1 异常值 283
6.4.2 异常的计数或频率 287
6.4.3 数据缺失引起的异常 . 292
6.5 处理异常 294
6.5.1 探查 294
6.5.2 删除 295
6.5.3 替代值替换 . 297
6.5.4 缩放 299
6.6 总结 . 301
第 7 章 实验分析 302
7.1 用 SQL 进行实验分析的优势与局限性 . 303
7.2 数据集 305
7.3 实验的类型 307
7.3.1 二元结果实验:卡方检验 307
7.3.2 具有连续结果的实验:t 检验 310
7.4 实验的挑战和拯救有缺陷的实验的方法 312
7.4.1 变体分配 312
7.4.2 异常值 314
7.4.3 时间盒 315
7.4.4 重复暴露实验 317
7.5 当无法进行控制实验时:替代分析 . 318
7.5.1 前/ 后分析 319
7.5.2 自然实验分析 321
7.5.3 阈值附近的群体分析 . 322
7.6 总结 . 323
第8 章 创建用于分析的复杂数据集 324
8.1 何时对复杂数据集使用 SQL 324
8.1.1 使用 SQL 的优点 . 325
8.1.2 什么时候构建ETL . 326
8.1.3 何时将逻辑放入其他工具中 328
8.2 代码组织 329
8.2.1 注释 330
8.2.2 大写,缩进,括号和其他格式技巧 331
8.2.3 存储代码 334
8.3 组织计算 335
8.3.1 理解SQL 子句的计算顺序 . 335
8.3.2 子查询 339
8.3.3 临时表 341
8.3.4 公共表表达式 343
8.3.5 grouping sets 344
8.4 管理数据集大小和隐私问题 349
8.4.1 使用 % 、mod 进行抽样 . 349
8.4.2 降低维数 351
8.4.3 PII 和数据隐私 . 355
8.5 总结 . 357
第9 章 结论 358
9.1 漏斗分析 358
9.2 流失、中止和其他离开的定义 360
9.3 购物篮分析 365
9.4 资源 . 367
9.4.1 书籍和博客 . 368
9.4.2 数据集 369
9.5 最终的想法 370
|
內容試閱:
|
前言在过去的20 年里,我主要在科技公司工作,涵盖了各类消费者和B2B( 即企业对企业) 行业,而这些日子中我大部分的工作时间都在用SQL 来处理和分析数据。在那段时间里,数据量急剧增加,我所使用的技术也有了突飞猛进的进步。数据库比以往任何时候都快,用于传达数据含义的报告和可视化工具也比以往都更强大。然而,有一件事一直保持不变,那就是SQL 是我常用的数据分析工具箱的关键部分。我还清楚地记得刚开始接触和学习SQL 时候的场景。我的职业生涯始于金融业,那时候电子表格占据了行业的主导地位,我在写公式和记住所有键盘快捷键方面都已经非常熟练了。有一天,我发疯似的按住Ctrl 和Alt 键并单击了键盘上的每一个键,只想看看究竟会发生什么(然后为我的同事创建了一个速查表)。这既带给我乐趣也是为了更好地工作:我处理电子表格的速度越快,就越有可能在午夜前完成工作,这样就可以回家睡觉了。精通电子表格让我进入了下一个岗位,这是我第一次接触数据库和SQL 的初创公司。我的一部分工作职责是处理电子表格中的库存数据,由于早期的互联网规模,数据集有时有上万行。这在当时是一个“大数据”,至少对我来说是这样。我养成了在电脑CPU 忙于运行它的vlookup 魔法时去喝杯咖啡或吃午饭的习惯。有一天,我的经理去度假,让我帮忙管理他用Access 在笔记本电脑上建立的数据仓库。刷新数据需要一系列步骤:在门户中运行SQL 查询,将生成的csv 文件加载到数据库中,然后刷新电子表格报告。第一次成功加载后,我开始修订,试图了解它是如何工作的,并缠着工程师向我展示如何修改SQL 查询。我被深深的迷住了,甚至当我认为我可能会改变职业方向时,我还是不断地回归到数据上来。操纵数据、回答问题、帮助我的同事更好、更聪明地工作,以及通过数据集了解企业和世界,我从未停止享受其中带给我的乐趣并为此感到兴奋不已。当我刚开始使用SQL 时,还没有太多的学习资源。我买了一本关于基本语法的书,花了一晚上就看完了,从那之后大部分的知识都是通过反复试验来学习的。在我还在学习的阶段,我就直接查询生产数据库,并用我过于雄心勃勃(或者更可能只是写得不好)的SQL 不止一次地使网站崩溃。幸运的是,我的技能有所提高,这些年来我学会了从表中的数据向前工作,从所需的输出向后工作,解决技术和逻辑的各种挑战和难题,以编写返回正确数据的查询。我最终设计并构建了数据仓库,以从不同来源收集数据,并避免破坏关键的生产数据库。在编写SQL 查询之前,我学到了很多关于应该何时以及如何聚合数据的知识,还有什么时候应该以更原始的形式保留数据。我将笔记与差不多同一时间进入数据领域行业的其他人进行了比较,很明显,我们主要是以有针对性的方式来学习的。我们中那些幸运的人有同龄人与他们分享技术。大多数SQL 文本要么是介绍性的,要么是基础性的(肯定有这些!)或者是针对数据库开发人员的。对于专注于分析工作的高级SQL 用户来说,资源很少。知识往往被困在个人或小团队中,而不是被广泛地交流与分享。本书的一个目标是改变这一点,为从业者提供如何使用SQL 解决常见分析问题的参考,并且我希望使用你可能从未见过的技术,激发对数据的新探索。O’Reilly 在线学习平台(O’Reilly Online Learning)近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:O’Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2号成铭大厦C座807室(100035)奥莱利技术咨询(北京)有限公司本书有专门的网页,其中列出了勘误表、示例和任何其他信息。 你可以访问此页面https://oreil.ly/sql-data-analysis。对本书的评论或技术疑问,可以发电子邮件到errata@oreilly.com.cn。欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。我们的Facebook:http://facebook.com/oreilly。我们的Twitter:http://twitter.com/oreillymedia。我们的YouTube:http://www.youtube.com/oreillymedia。致谢如果没有O’Reilly 的许多人的努力,这本书是不可能完成和出版的。感谢Andy Kwan 最开始招募我参与这个项目;Amelia Blevins 和Shira Evans 指导我完成了整个过程,并在过程中提供了有益的反馈;Kristen Brown 指导了这本书的制作过程;Arthur Johnson 提高了文本的质量和清晰度,无意中也让我对SQL 有了更深入的思考。多年来,许多同事在我的SQL 之旅中发挥了重要作用,感谢他们的指导、技巧和共享代码,以及多年来花时间集思广益解决分析问题的方法。Sharon Lin 让我对正则表达式大开眼界。Elyse Gordon 给了我很多写书的建议。Dave Hoch 和我们关于实验分析的对话启发了我写下第7 章。来自Star Chamber 的Dan、Jim 和Stu 一直以来都是我最喜欢一起交流探讨的学者们。我也很感谢这些年来所有提出尖锐问题的同事不断给我启发,一旦这些问题得到回答,他们又会提出更有挑战的问题。我要感谢我的丈夫Rick、儿子Shea、女儿Lily 和Fiona,以及妈妈Janet,感谢他们的爱和鼓励,最重要的是,感谢他们给我时间来写这本书。Amy、Halle、Jessi 和the Den of Slack 在长达数月的写作和疫情封锁期间让我身心保持良好的状态和带给我欢笑。
|
|