對比Excel,輕松學(xué)習(xí)SQL數(shù)據(jù)分析
鏈接:https://pan.baidu.com/s/1h7xd_VSHt0sbQqGpfn7IWA?pwd=r0ed?
提取碼:r0ed

《對比Excel,輕松學(xué)習(xí)Python 數(shù)據(jù)分析》姊妹篇,同樣采用對比的方法,降低學(xué)習(xí)門檻,提高學(xué)習(xí)效率。
學(xué)習(xí)SQL 的主要原因是工作需要。網(wǎng)上關(guān)于數(shù)據(jù)相關(guān)崗位的招聘都要求有熟練使用SQL 這一條,為什么會這樣呢?這是因為我們負(fù)責(zé)的是與數(shù)據(jù)相關(guān)的工作,而獲取數(shù)據(jù)是我們工作的第一步,比如,你要通過數(shù)據(jù)做決策,但是現(xiàn)在公司的數(shù)據(jù)基本上不存儲在本地Excel 表中,而是存儲在數(shù)據(jù)庫中,想要從數(shù)據(jù)庫中獲取數(shù)據(jù)就需要使用SQL,所以熟練使用SQL 成了數(shù)據(jù)相關(guān)從業(yè)者入職的必要條件。本書的所有代碼和函數(shù)均以MySQL 8.0 為主。
內(nèi)容簡介
《對比Excel,輕松學(xué)習(xí)SQL數(shù)據(jù)分析》是《對比Excel,輕松學(xué)習(xí)Python 數(shù)據(jù)分析》的姊妹篇,同樣采用對比的方法,降低學(xué)習(xí)門檻,提高學(xué)習(xí)效率。全書分為3 篇:第1 篇主要介紹數(shù)據(jù)分析的基礎(chǔ)知識,包括數(shù)據(jù)分析的基本概念、為什么要進行數(shù)據(jù)分析及常規(guī)的數(shù)據(jù)分析流程,使讀者對數(shù)據(jù)分析有一個整體的認(rèn)識;第2 篇主要圍繞數(shù)據(jù)分析的整個流程來介紹與SQL 語法相關(guān)的知識,包括如何選取一列數(shù)據(jù)、如何對數(shù)據(jù)進行分組運算等基礎(chǔ)知識,還包括窗口函數(shù)等進階知識;第3 篇主要介紹SQL 數(shù)據(jù)分析實戰(zhàn),都是一些比較常規(guī)的業(yè)務(wù)場景實戰(zhàn)。
《對比Excel,輕松學(xué)習(xí)SQL數(shù)據(jù)分析》適合零基礎(chǔ)學(xué)習(xí) SQL 的人員,包括數(shù)據(jù)分析師、產(chǎn)品經(jīng)理、數(shù)據(jù)運營人員、市場營銷人員、應(yīng)屆畢業(yè)生等所有需要利用SQL 查詢數(shù)據(jù)的人員。
作者簡介
張俊紅:某互聯(lián)網(wǎng)公司高級數(shù)據(jù)分析師,暢銷書《對比Excel,輕松學(xué)習(xí)Python數(shù)據(jù)分析》作者。喜歡分享,致力于做一個數(shù)據(jù)科學(xué)路上的終身學(xué)習(xí)者、實踐者、分享者。公眾號“俊紅的數(shù)據(jù)分析之路”運營人。
目錄
目錄
入門篇
第1章 數(shù)據(jù)分析基礎(chǔ)介紹 2
1.1 數(shù)據(jù)分析是什么 2
1.2 為什么要進行數(shù)據(jù)分析 2
1.2.1 現(xiàn)狀分析 3
1.2.2 原因分析 3
1.2.3 預(yù)測分析 4
1.3 數(shù)據(jù)分析究竟在分析什么 5
1.3.1 總體概覽指標(biāo) 5
1.3.2 對比性指標(biāo) 5
1.3.3 集中趨勢指標(biāo) 6
1.3.4 離散程度指標(biāo) 6
1.3.5 相關(guān)性指標(biāo) 7
1.3.6 相關(guān)與因果 7
1.4 數(shù)據(jù)分析的常規(guī)分析流程7
1.4.1 熟悉工具8
1.4.2 明確目的 8
1.4.3 獲取數(shù)據(jù) 8
1.4.4 熟悉數(shù)據(jù) 8
1.4.5 處理數(shù)據(jù) 8
1.4.6 分析數(shù)據(jù) 9
1.4.7 得出結(jié)論 9
1.4.8 驗證結(jié)論 9
1.4.9 展現(xiàn)結(jié)論 9
1.5 數(shù)據(jù)分析工具 9
1.5.1 Excel 與SQL 9
1.5.2 SQL 與Python 10
知識篇
第2章 數(shù)據(jù)庫基礎(chǔ)知識 12
2.1 數(shù)據(jù)庫的發(fā)展及組成 12
2.1.1 數(shù)據(jù)庫的發(fā)展 12
2.1.2 數(shù)據(jù)庫的組成 . 13
2.2 SQL 是什么 . 13
2.3 SQL 的基本功能 . 14
2.3.1 數(shù)據(jù)定義 . 15
2.3.2 數(shù)據(jù)操縱 . 15
2.3.3 數(shù)據(jù)控制 . 15
2.4 SQL 查詢的處理步驟 . 15
2.4.1 查詢分析 . 15
2.4.2 查詢檢查 . 15
2.4.3 查詢優(yōu)化 . 16
2.4.4 查詢執(zhí)行 . 16
2.5 不同數(shù)據(jù)庫的比較 . 16
第3章 數(shù)據(jù)庫工具準(zhǔn)備 17
3.1 認(rèn)識MySQL 官方網(wǎng)站 17
3.2 MySQL 的下載與安裝 . 19
3.2.1 基于Windows 的下載與安裝 19
3.2.2 基于macOS 的下載與安裝 . 27
3.3 DBeaver 的下載與安裝 33
3.3.1 基于Windows 的下載與安裝 33
3.3.2 基于macOS 的下載與安裝 . 38
3.4 DBeaver 使用說明 42
3.4.1 新建表結(jié)構(gòu) . 42
3.4.2 導(dǎo)入外部數(shù)據(jù) . 44
3.4.3 代碼執(zhí)行 . 46
3.4.4 導(dǎo)出結(jié)果數(shù)據(jù) . 47
3.5 寫下第一行SQL 語句 49
第4章 數(shù)據(jù)源的獲取 50
4.1 外部數(shù)據(jù) . 50
4.2 公司現(xiàn)有數(shù)據(jù) . 50
4.3 新建數(shù)據(jù) . 50
4.4 熟悉數(shù)據(jù) . 50
4.4.1 了解數(shù)據(jù)庫信息 . 52
4.4.2 了解數(shù)據(jù)表信息 . 52
4.4.3 了解列信息 . 52
第5章 數(shù)據(jù)的獲取 54
5.1 獲取列 . 54
5.1.1 獲取全部列 . 55
5.1.2 獲取特定的列 . 55
5.2 獲取想要的行 . 56
5.2.1 獲取全部行 . 56
5.2.2 獲取前幾行 . 56
5.2.3 獲取滿足單一條件的行 . 57
5.2.4 獲取滿足多個條件的行 . 58
5.3 行列同時獲取 . 59
5.4 插入一列固定值 . 60
5.5 JSON 列解析 . 61
5.6 對結(jié)果進行排序 . 62
第6章 數(shù)據(jù)預(yù)處理 65
6.1 缺失值處理 . 65
6.2 重復(fù)值處理 . 68
6.3 數(shù)據(jù)類型轉(zhuǎn)換 . 70
6.4 重命名 . 72
第7章 數(shù)據(jù)運算 74
7.1 算術(shù)運算 . 74
7.2 比較運算 . 76
7.3 邏輯運算 . 78
7.4 數(shù)學(xué)運算 . 80
7.4.1 求絕對值 . 80
7.4.2 求最小整數(shù)值 . 81
7.4.3 求最大整數(shù)值 . 81
7.4.4 隨機數(shù)生成 . 81
7.4.5 小數(shù)點位數(shù)調(diào)整 . 83
7.4.6 正負(fù)判斷 . 83
7.5 字符串運算 . 84
7.5.1 字符串替換 . 84
7.5.2 字符串合并 . 85
7.5.3 字符串截取 . 86
7.5.4 字符串匹配 . 86
7.5.5 字符串計數(shù) . 87
7.5.6 去除字符串空格 . 88
7.5.7 字符串重復(fù) . 89
7.6 聚合運算 . 89
7.6.1 count()計數(shù) . 89
7.6.2 sum()求和 90
7.6.3 avg()求平均值 90
7.6.4 max()求最大值 . 90
7.6.5 min()求最小值 91
7.6.6 求方差 . 91
7.6.7 求標(biāo)準(zhǔn)差 . 92
7.6.8 聚合函數(shù)之間的運算 . 92
第8章 控制函數(shù) 94
8.1 if()函數(shù) 94
8.2 case when 函數(shù) 96
第9章 日期和時間函數(shù) 99
9.1 獲取當(dāng)前時刻的數(shù)據(jù) . 99
9.1.1 獲取當(dāng)前時刻的日期和時間 . 99
9.1.2 獲取當(dāng)前時刻的日期 . 99
9.1.3 獲取當(dāng)前時刻的時間 . 100
9.1.4 獲取當(dāng)前時刻所屬的周數(shù) . 101
9.1.5 獲取當(dāng)前時刻所屬的季度 . 102
9.2 日期和時間格式轉(zhuǎn)換 . 102
9.3 日期和時間運算 . 104
9.3.1 向后偏移日期和時間 . 104
9.3.2 向前偏移日期和時間 . 105
9.3.3 兩個日期之間做差 . 106
9.3.4 兩個日期之間的比較 . 107
第10章 數(shù)據(jù)分組與數(shù)據(jù)透視表 108
10.1 group by 的底層原理 108
10.2 對分組后的數(shù)據(jù)進行聚合運算 . 109
10.3 對聚合后的數(shù)據(jù)進行條件篩選 111
10.4 group_concat()函數(shù) 112
10.5 rollup. 113
10.6 數(shù)據(jù)透視表實現(xiàn) 115
第11章 窗口函數(shù) . 117
11.1 什么是窗口函數(shù) 117
11.2 聚合函數(shù)+over()函數(shù) 117
11.3 partition by 子句 . 118
11.4 order by 子句 . 120
11.5 序列函數(shù) . 121
11.5.1 ntile()函數(shù) . 121
11.5.2 row_number()函數(shù) 123
11.5.3 lag()和lead()函數(shù) . 124
11.5.4 first_value()和last_value()函數(shù) . 126
第12章 多表連接 127
12.1 表的橫向連接 . 127
12.1.1 表連接的方式 . 128
12.1.2 表連接的類型 . 132
12.1.3 多張表連接 . 134
12.2 表的縱向連接 . 135
12.3 橫向連接的底層原理 . 135
12.3.1 Simple Nested-Loop Join 136
12.3.2 Index Nested-Loop Join 136
12.3.3 Block Nested-Loop Join 137
第13章 子查詢 139
13.1 子查詢的概念 . 139
13.2 子查詢的分類 . 139
13.2.1 select 子查詢 . 140
13.2.2 from 子查詢 141
13.2.3 where 子查詢 142
13.3 with 建立臨時表 . 144
實戰(zhàn)篇
第14章 SQL中的其他話題 . 150
14.1 SQL 查詢的執(zhí)行順序. 150
14.2 變量設(shè)置 . 152
14.3 分區(qū)表 . 153
14.4 寬表與窄表 . 154
14.5 全量表,增量表,快照表,拉鏈表,流水表 . 154
14.6 數(shù)據(jù)回溯 . 156
14.7 數(shù)據(jù)倉庫的基本分層 . 157
14.8 SQL 語句的代碼規(guī)范157
14.9 如何快速梳理數(shù)據(jù)庫邏輯 159
14.10 如何快速讀懂別人的代碼 160
14.11 編輯器 161
14.11.1 軟件安裝 161
14.11.2 常用功能設(shè)置 162
14.11.3 常用快捷鍵 166
14.12 創(chuàng)建表 167
14.12.1 創(chuàng)建一張表 167
14.12.2 向表中插入數(shù)據(jù) 168
14.12.3 修改表中的數(shù)據(jù)169
14.12.4 刪除表 169
第15章 SQL 數(shù)據(jù)分析實戰(zhàn) 170
15.1 查詢每個區(qū)域的用戶數(shù) 170
15.2 查詢每個區(qū)域的男女用戶數(shù) 171
15.3 查詢姓張的用戶數(shù) 171
15.4 篩選出id3~id5 的用戶 172
15.5 篩選出績效不達標(biāo)的員工 172
15.6 篩選出姓張的且績效不達標(biāo)的員工 173
15.7 查詢獲得銷售冠軍超過兩次的人 174
15.8 查詢某部門一年的月銷售額最高漲幅 175
15.9 查詢每個季度績效得分大于70 分的員工 175
15.10 刪除重復(fù)值 176
15.11 行列互換 177
15.12 多列比較 178
15.13 對成績進行分組179
15.14 周累計數(shù)據(jù)獲取 180
15.15 周環(huán)比數(shù)據(jù)獲取 181
15.16 查詢獲獎員工信息 182
15.17 計算用戶留存情況 183
15.18 篩選最受歡迎的課程 185
15.19 篩選出每個年級最受歡迎的三門課程 186
15.20 求累積和 187
15.21 獲取新增用戶數(shù) 189
15.22 獲取用戶首次購買時間 190
15.23 同時獲取用戶和訂單數(shù)據(jù) 191
15.24 隨機抽樣 192
15.25 獲取沉默用戶數(shù) 193
15.26 獲取新用戶的訂單數(shù) 193
15.27 獲取借款到期名單 194
15.28 獲取即將到期的借款信息 195
15.29 獲取歷史逾期借款信息 196
15.30 綜合實戰(zhàn) 196
第16章 SQL中常見的報錯 198
16.1 DBeaver 相關(guān)報錯 198
16.1.1 時區(qū)錯誤 198
16.1.2 Public Key Retrieval 199
16.1.3 connect error 200
16.1.4 加密方式錯誤 201
16.2 MySQL 配置相關(guān)報錯 202
16.2.1 MySQL 安裝失敗 202
16.2.2 MySQL 客戶端閃退 206
16.2.3 訪問被拒絕 206
16.3 語法相關(guān)報錯 206
16.3.1 表名錯誤 206
16.3.2 列名錯誤 206
16.3.3 group by 錯誤 206
16.3.4 權(quán)限錯誤 207
16.3.5 逗號錯誤 207
16.3.6 括號錯誤 208
查看全部↓
前言/序言
前言
為什么要寫這本書
《對比 Excel,輕松學(xué)習(xí)Python 數(shù)據(jù)分析》在出版后收到了不少讀者和同行的評論,說寫作角度很獨特,對新手很友好,筆者印象最深刻的一條評論是:“一本書的好壞足以影響一個人要不要繼續(xù)在這條路上走下去?!比绻軌蜃屪x者意識到學(xué)習(xí)這門知識并不難,并且愿意繼續(xù)學(xué)下去,哪怕這本書不能讓讀者完全掌握這門技能,但是至少讓讀者有了走下去的信心,筆者覺得也是極好的。
基于以上原因,筆者重新審視了一下自己,又去看了看市面上與 SQL 相關(guān)的書,發(fā)現(xiàn)目前市面上與 SQL 相關(guān)的書主要有兩類:一類是講解基礎(chǔ)知識的;另一類是講解數(shù)據(jù)庫底層知識的。專門面向數(shù)據(jù)分析師的 SQL 的書并沒有。學(xué)過數(shù)據(jù)庫的讀者應(yīng)該都知道,數(shù)據(jù)庫的基本功能是增、刪、改、查,做過數(shù)據(jù)分析工作的讀者基本上也知道,數(shù)據(jù)分析師基本不需要進行增、刪、改操作,只需要進行查操作。說到查,大部分人都會覺得很簡單,不就是 select * from t 嗎?select 本身沒什么難度,隨便在網(wǎng)上搜一篇教程或者找一本講查詢基礎(chǔ)知識的書,一天基本就可以學(xué)會了。