编辑推荐
理解并发现数据中的模式已是改进业务决策的重要方式之一。如果读者具备SQL方面的基础知识,但却不了解如何从数据中获得业务洞察结果,那么本书将十分适合你。
本书涵盖了读者需要的一切内容,包括SQL基础知识、讲述故事和识别数据中的“趋势”,进而能够通过识别模式和揭示更深入的洞察结果开始研究数据。除此之外,读者还将获得在SQL中使用不同类型数据的经验,包括时间序列、地理空间和文本数据。*后,读者还将了解如何在分析和自动化的帮助下提高SQL的生产效率,从而更快地获得洞察结果。
在阅读完本书后,读者将能够在日常业务场景中高效地使用SQL,并以分析专家的批判性眼光看待数据。
 ;
内容简介
本书详细阐述了与SQL数据分析相关的基本解决方案,主要包括理解和描述数据、数据分析与SQL基础知识、SQL数据准备、数据分析的聚合函数、数据分析的窗口函数、导入和导出数据、利用复杂数据类型进行分析、高性能SQL、利用SQL获取洞察结果等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
作者简介
暂无
目录
第1章 ; 理解和描述数据 ; 1
1.1 ; 简介 ; 1
1.2 ; 数据世界 ; 1
1.2.1 ; 数据类型 ; 1
1.2.2 ; 数据分析和统计 ; 2
1.2.3 ; 统计类型 ; 3
1.2.4 ; 操作1:对新数据集进行分类 ; 4
1.3 ; 描述统计的方法 ; 4
1.3.1 ; 单变量分析 ; 5
1.3.2 ; 数据频率分布 ; 5
1.3.3 ; 练习1:创建直方图 ; 5
1.3.4 ; 练习2:计算附加销售的四分位数 ; 10
1.3.5 ; 集中趋势 ; 12
1.3.6 ; 练习3:计算附加销售的集中趋势 ; 13
1.3.7 ; 离散度 ; 14
1.3.8 ; 练习4:附加销售的离散度 ; 15
1.3.9 ; 双变量分析 ; 16
1.3.10 ; 散点图 ; 16
1.3.11 ; 练习5:计算两个变量的皮尔森相关系数 ; 21
1.3.12 ; 操作2:研究经销商销售数据 ; 26
1.3.13 ; 与遗失数据协同工作 ; 27
1.4 ; 统计显著性检验 ; 27
1.5 ; 本章小结 ; 29
 ;
第2章 ; 数据分析与SQL基础知识 ; 31
2.1 ; 简介 ; 31
2.2 ; 关系数据库和SQL ; 31
2.3 ; SQL中的基本数量类型 ; 33
2.3.1 ; 数字 ; 33
2.3.2 ; 字符 ; 33
2.3.3 ; 布尔类型 ; 35
2.3.4 ; datatime ; 35
2.3.5 ; 数据结构:JSON和数组 ; 36
2.4 ; 读取表:SELECT查询 ; 36
2.4.1 ; SELECT查询的基本分析和工作机制 ; 36
2.4.2 ; SELECT查询中的基本关键字 ; 37
2.4.3 ; 练习6:查询销售人员表 ; 42
2.4.4 ; 操作3:查询客户表 ; 43
2.5 ; 创建表 ; 44
2.5.1 ; 创建空表 ; 44
2.5.2 ; 练习7:在SQL中创建表 ; 45
2.5.3 ; 利用SELECT创建表 ; 46
2.6 ; 更新表 ; 46
2.6.1 ; 添加和移除列 ; 46
2.6.2 ; 添加新数据 ; 47
2.6.3 ; 更新现有行 ; 48
2.6.4 ; 练习8:更新SQL中的表 ; 48
2.7 ; 删除数据和表 ; 49
2.7.1 ; 删除行中的值 ; 49
2.7.2 ; 删除表中的行 ; 50
2.7.3 删除表 50
2.7.4 练习9:不必要的参考表 51
2.7.5 操作4:营销行为 51
2.8 SQL和数据分析 52
2.9 本章小结 52
第3章 SQL数据准备 55
3.1 简介 55
3.2 采集数据 55
3.2.1 利用JOIN连接表 55
3.2.2 连接类型 57
3.2.3 练习10:使用连接操作分析经销商数据 63
3.2.4 子连接 65
3.2.5 联合 65
3.2.6 练习11:利用UNION关键字生成高级客户名单 67
3.2.7 公共表表达式 68
3.3 转换数据 69
3.3.1 练习12:使用CASE WHEN函数获取区域列表 70
3.3.2 操作5:利用SQL技术构建销售模型 76
3.4 本章小结 77
第4章 数据分析的聚合函数 79
4.1 简介 79
4.2 聚合函数 79
4.3 练习13:使用聚合函数分析数据 81
4.4 基于GROUP BY的聚合函数 82
4.4.1 GROUP BY 82
4.4.2 多列GROUP BY 85
4.4.3 练习14:利用GROUP BY并通过产品类型计算成本 86
4.4.4 集合分组 87
4.4.5 有序集聚合结果 88
4.5 HAVING子句 89
4.6 练习15:利用HAVING子句计算和显示数据 90
4.7 使用聚合函数清理数据并检测数据质量 91
4.7.1 利用GROUP BY检索缺失数据 91
4.7.2 利用聚合函数评估数据质量 93
4.7.3 操作6:利用聚合函数分析销售数据 93
4.8 本章小结 94
第5章 数据分析的窗口函数 95
5.1 简介 95
5.2 窗口函数 95
5.2.1 窗口函数的基本知识 96
5.2.2 练习16:分析客户数据填充率 100
5.2.3 WINDOW关键字 102
5.3 基于窗口函数的统计信息 103
5.3.1 练习17:聘用日期排名 104
5.3.2 窗框 105
5.3.3 练习18:团餐活动 107
5.3.4 操作7:利用窗框和窗口函数分析销售数据 108
5.4 本章小结 109
第6章 导入和导出数据 111
6.1 简介 111
6.2 COPY命令 111
6.2.1 使用COPY命令 112
6.2.2 利用psql复制数据 113
6.2.3 配置COPY和copy 114
6.2.4 使用COPY和copy命令将数据批量上传至数据库中 114
6.2.5 练习19:将数据导出至文件中并在Excel中进行处理 115
6.3 R和数据库 118
6.3.1 为何使用R 119
6.3.2 开始使用R 119
6.4 Python语言和数据库 121
6.4.1 为何使用Python 121
6.4.2 开始使用Python 122
6.4.3 练习20:利用Python导出数据库中的数据 122
6.4.4 利用SQLAlchemy和Pandas改进Python中的Postgres访问操作 124
6.4.5 为何使用SQLAlchemy 124
6.4.6 使用Jupyter Notebook 125
6.4.7 利用Pandas读取和写入数据库 127
6.4.8 利用Pandas执行数据可视化操作 128
6.4.9 练习21:在Python中读取数据和可视化数据 128
6.4.10 利用Python将数据写入数据库中 130
6.4.11 利用COPY提升Python写入速度 131
6.4.12 利用Python读、写CSV文件 132
6.5 实现导入、导出数据 133
6.5.1 减少密码处理 133
6.5.2 操作8:使用外部数据集估计销售趋势 134
6.6 本章小结 135
第7章 利用复杂数据类型进行分析 137
7.1 简介 137
7.2 日期和时间数据类型 137
7.2.1 date类型 138
7.2.2 转换日期类型 140
7.2.3 区间 142
7.2.4 练习22:分析时序数据 143
7.3 在Postgres中执行地理空间分析 145
7.3.1 经纬度 145
7.3.2 在Postgres中表示经纬度 145
7.3.3 练习23:地理空间分析 147
7.4 使用Postgres中的ARRAY数据类型 149
7.5 使用Postgres中的JSON数据类型 152
7.5.1 JSONB:预解析的JSON 154
7.5.2 从JSON或JSONB字段中访问数据 155
7.5.3 创建和修改JSONB字段中的数据 157
7.5.4 练习24:搜索JSONB 157
7.6 利用Postgres进行文本分析 159
7.6.1 标记文本 159
7.6.2 练习25:执行文本分析 160
7.6.3 执行文本搜索 164
7.6.4 优化Postgres上的文本搜索 166
7.6.5 操作9:销售量的搜索和分析 168
7.7 本章小结 169
第8章 高性能SQL 171
8.1 简介 171
8.2 数据库扫描方法 172
8.2.1 查询规划机制 172
8.2.2 扫描和顺序扫描 173
8.2.3 练习26:解释查询规划 174
8.2.4 操作10:查询规划 178
8.2.5 索引扫描 178
8.2.6 B树索引 179
8.2.7 练习27:创建索引扫描 180
8.2.8 操作11:实现索引扫描 185
8.2.9 哈希索引 186
8.2.10 练习28:生成多个哈希索引以改进性能 186
8.2.11 操作12:实现哈希索引 190
8.2.12 高效的索引应用 191
8.3 高效的连接操作 192
8.3.1 练习29:内连接应用 193
8.3.2 操作13:实现连接操作 198
8.4 函数和触发器 199
8.4.1 函数定义 200
8.4.2 练习30:定义无参函数 201
8.4.3 操作14:定义*大销售额函数 203
8.4.4 练习31:定义包含参数的函数 204
8.4.5 df和sf命令 206
8.4.6 操作15:定义包含参数的函数 206
8.4.7 触发器 207
8.4.8 练习32:创建触发器以更新字段 208
8.4.9 操作16:创建触发器并记录平均购买量 213
8.4.10 删除查询 214
8.4.11 练习33:取消耗时较长的查询 214
8.4.12 操作17:终止一个耗时的查询 216
8.5 本章小结 216
第9章 利用SQL获取洞察结果 219
9.1 简介 219
9.2 案例研究 219
9.2.1 科学方法 219
9.2.2 练习34:基于SQL技术的初步数据收集 220
9.2.3 练习35:析取销售信息 222
9.2.4 操作18:销售的量化计算 226
9.2.5 练习36:上市时间分析 227
9.2.6 操作19:分析销售价格假设中的差异 234
9.2.7 练习37:通过电子邮件点击率分析销售增长 236
9.2.8 练习38:分析电子邮件营销活动的表现结果 243
9.2.9 结论 247
9.2.10 现场测试 248
9.3 本章小结 248
附录 251
第1章 理解和描述数据 251
操作1:对新数据集进行分类 251
操作2:研究经销商销售数据 251
第2章 数据分析与SQL基础知识 253
操作3:查询客户表 253
操作4:营销行为 255
第3章 SQL数据准备 256
操作5:利用SQL技术构建销售模型 256
第4章 数据分析的聚合函数 257
操作6:利用聚合函数分析销售数据 257
第5章 数据分析的窗口函数 259
操作7:利用窗框和窗口函数分析销售数据 259
第6章 导入和导出数据 262
操作8:使用外部数据集估计销售趋势 262
第7章 利用复杂数据类型进行分析 269
操作9:销售量的搜索和分析 269
第8章 高性能SQL 272
操作10:查询规划 272
操作11:实现索引扫描 274
操作12:实现哈希索引 276
操作13:实现连接操作 278
操作14:定义*大销售额函数 280
操作15:定义包含参数的函数 281
操作16:创建触发器并记录平均购买量 282
操作17:终止一个耗时的查询 283
第9章 利用SQL获取洞察结果 284
操作18:销售的量化计算 284
操作19:分析销售价格假设中的差异 286
前沿
关于本书
理解并发现数据中的模式已是改进业务决策的重要方式之一。如果读者具备SQL方面的基础知识,但却不了解如何从数据中获得业务洞察结果,那么本书将十分适合你。
本书涵盖了读者需要的一切内容,包括SQL基础知识、讲述故事和识别数据中的“趋势”,进而能够通过识别模式和揭示更深入的洞察结果开始研究数据。除此之外,读者还将获得在SQL中使用不同类型数据的经验,包括时间序列、地理空间和文本数据。最后,读者还将了解如何在分析和自动化的帮助下提高SQL的生产效率,从而更快地获得洞察结果。
在阅读完本书后,读者将能够在日常业务场景中高效地使用SQL,并以分析专家的批判性眼光看待数据。
学习目标
本书主要涉及以下内容:
q 使用SQL归纳和识别数据中的模式。
q 采用特定的SQL字句和函数生成描述性统计结果。
q 使用SQL查询和子查询为分析过程准备数据。
q 利用窗口函数执行高级统计计算。
q 分析SQL中特殊的数据类型,包括地理空间数据和时间数据。
q 利用文本文件与PostgreSQL导入和导出数据。
q 调试无法正常运行的查询操作。
q 优化查询操作并改进其性能,以获得快速的查询结果。
如果读者是一名希望过渡到分析师的数据库工程师,或者是一名希望深入理解产品数据的后端工程师,那么本书将十分有用。另外,本书也是数据分析师和数据科学家的理想选择,从而提升其SQL数据分析技能。其间,基本的SQL知识和数据库概念将有助于理解本书中所涉及的概念。
本书完美地平衡了理论和实践之间的内容,同时还提供了数据分析的实际方法。本书侧重于为SQL和统计分析提供实用的指导,以便读者能够更好地理解数据。本书注重于实用性且涵盖了多项实践操作,其中采用了真实的业务场景,以使读者能够在高度相关的上下文环境中应用所需的新技能。
硬件和软件需求
为了获得最佳体验,建议读者使用以下硬件配置。
q 处理器:Intel Core i5(或具有同等计算能力的处理器)。
q 内存:4GB RAM。
q 存储:5GB可用空间。
此外,还应安装下列软件。
q 操作系统:Windows 7 SP1 64-bit、Windows 8.1 64-bit、Windows 10 64-bit、Linux(Ubuntu 16.04或后续版本、Debian、Red Hat或Suse),或者最新版本的macOS。
q PostgreSQL 10.9(https://www.postgresql.org/download/)。
q Anaconda Python 3.7(https://www.anaconda.com/distribution/#download-section)。
q Git 2或后续版本。
本书约定
本书代码采用下列格式:
CREATE TEMP VIEW customers_sample AS (
SELECT *
FROM customers
LIMIT 5
);
copy customers_sample TO my_file.csv WITH CSV HEADER
DROP VIEW customers_sample;
安装和配置
在对数据进行操作之前,需要提供有效的操作环境,下面将对此予以介绍。
安装PostgreSQL 10.9
1.在Windows操作系统中进行安装
读者可访问https://www.postgresql.org/download/windows/以下载PostgreSQL 10。
2.在Linux操作系统中进行安装
读者可通过下列命令行在Ubuntu或Debian Linux上安装PostgreSQL:
sudo apt-get install postgresl-11
3.在macOS操作系统中进行安装
读者可访问https://www.postgresql.org/download/macosx/以下载PostgreSQL 10。
安装Python
1.在Windows操作系统中进行安装
(1)读者可访问https://www.anaconda.com/distribution/#windows,并选取期望安装的Python版本。
(2)从下载页面中选择Python 3.7。
(3)确保针对计算机系统安装正确的架构,即32位或64位。该信息位于操作系统的System Properties窗口中。
(4)在下载了安装程序后,双击该文件并遵循相关指令即可。
2.在Linux操作系统中进行安装
当在Linux操作系统中安装Python时,需要使用以下两个选项。
(1)打开命令提示符,运行python3 --version,以验证pPython 3尚未被安装。
(2)安装Python 3,可运行下列命令:
sudo apt-get update
sudo apt-get install python3.7
(3)如遇问题,读者可查找大量的在线资源,这对于解决实际问题很有帮助。
(4)读者可访问https://www.anaconda.com/distribution/#linux下载安装程序,遵循相应的指令即可安装Anaconda Linux。
3.在macOS操作系统中进行安装
与Linux类似,存在多种方法可在Mac上安装Python,具体操作步骤如下。
(1)打开Mac终端(按CMD 空格键),在搜索框中输入terminal并按Enter键。
(2)通过命令行安装Xcode,即运行xcode-select --install。
(3)安装Python 3的最简单方式是使用Homebrew。Homebrew可通过命令行进行安装,即运行ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/ install)"。
(4)向$PATH环境变量中添加Homebrew。对此,运行sudo nano ~/.profile并在命令行中打开配置文件,并于底部插入export PATH="/usr/local/opt/python/libexec/bin:$PATH"。
(5)最后一步是安装Python。在命令行中,运行brew install python。
(6)另外,也可通过Anaconda安装程序(对应网址为https://www.anaconda.com/ distribution/#macos)来安装Python。
安装Git
1.在Windows或macOS操作系统中进行安装
读者可访问https://git-scm.com/以下载并安装适用于Windows或Mac环境下的Git。对于有经验的用户,建议通过高级客户端安装Git,如GitKraken(对应网址为https://www. gitkraken.com/)。
2.在Linux操作系统中进行安装
通过下列命令可轻松地安装Git:
sudo apt-get install git
如果用户偏好使用图形界面,GitKraken(对应网址为https://www.gitkraken.com/)也是一种基于Linux的选择方案。
加载样本数据集
本书中大量的练习都将使用样本数据集sqlda,其中包含了与虚构的电动汽车公司ZoomZoom相关的数据。当在PostgreSQL上安装该数据库时,可从本书GitHub存储库的Datasets文件夹(对应网址为https://github.com/TrainingByPackt/SQL-for-Data-Analytics/tree/ master/Datasets)中复制data.dump文件。随后,利用下列命令在命令行中加载data.dump文件:
psql < data.dump
其中,psql表示为postgreSQL客户端。
运行SQL文件
利用下列命令可在命令行中通过*.sql文件执行命令或语句:
psql < commands.sql
另外,也可通过SQL解释器予以执行,如下所示。
database=#
附加资源
本书的代码包位于GitHub中,对应网址为https://github.com/TrainingByPackt/SQL- for-Data-Analytics。此外,读者还可访问https://github.com/PacktPublishing/以查看其他代码包和视频内容。
关于本书的图像内容,读者可访问https://github.com/TrainingByPackt/SQL-for-Data- Analytics/blob/master/Graphic%20Bundle/Graphic%20Bundle_ColorImages.pdf予以查看。
SQL数据分析 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版