[學會關鍵 SQL 技能,開啟你的資料科學職業生涯]
現今,許多企業與組織都要求資料科學家、資料分析師,必須具備從資料庫提取與結合原始資料、設計並生成所需資料集的能力,不需要靠資料工程師或資料庫管理者處理。
[SQL 是從事資料科學必學的 3 大技能之一]
本書是由與資料為伍 18 年經驗的資料科學家、資料庫開發者親自撰寫,教導有志於從事資料科學者一定要學會的 SQL 查詢技能,以及發現可能問題的解決方法。你將學到如何設計查詢程式,建構用於探索、分析的資料集,並於過程中培養資料分析思維。
此書會引導你建立用於商業智慧軟體,以及機器學習演算法等應用的資料集。教導做為資料科學家最需要的 SQL 查詢技能,並透過專家經驗學習如何從資料中獲得有價值的訊息或知識,並避免處理資料時會遇到的陷阱,幫助企業主管快速掌握情況做出正確決策。
[搭配 ChatGPT 輔助學習 SQL]
本書以業界主流也最普及的 MySQL 8.0 資料庫系統與 MySQL Workbench 工具做示範。在各章進行過程中依情境穿插 “ChatGPT 來幫忙” 說明框 (總共有 40 多個) 在你可能需要的地方補充相關背景知識或額外的學習技巧,例如請 ChatGPT 依指示產生 SQL 程式、挑出程式錯誤並修改、調整程式寫法增加執行效率、用 Show Me Diagram plugin 為 SQL 查詢繪製執行流程圖、用 Code Interpreter 執行 SQL 程式查詢 Excel 檔內容等等,讓 ChatGPT 與學習 SQL 融為一體。
[SQL 查詢技巧重點]
●瞭解基本 SQL 語法並設計有效的 SQL 查詢
●使用 SQL 進行探索性資料分析
●從資料庫中建構、篩選和排序需要的資料集
●使用 SQL JOIN 技巧,連結多個表格的資料
●為分析報表和機器學習應用設計資料集
●應用更進階的 SQL 技術,如窗口函數和 CTE
●建立資料庫表格和視圖,儲存並引用查詢結果
本書特色:
● 資深資料科學家寫給有志從事資料科學者的貼心指導
● 學習作者觀察資料的視角,培養資料分析思維
● 提供書中 SQL 程式碼下載,節省讀者輸入時間
● 依學習情境所需穿插 40 多個 "ChatGPT 來幫忙" 說明框
● 各章練習題皆附參考答案,非常適合自主學習
作者簡介:
Renée M. P. Teate是教學平台HelioCampus的資料科學主管,帶領團隊為大專院校打造機器學習模型。她從 2004 年就開始與資料為伍,專長在關聯式資料庫設計、資料驅動的網站開發、資料分析以及資料科學等。她擁有詹姆士麥迪遜大學整合科學技術學位,以及維吉尼亞大學系統工程學位,結合職場的豐富經驗,她自詡是一位「資料通才」。
她時常在科技與高等教育會議及聚會上演講,同時也在業界許多刊物分享其在資料科學上的成果以及職涯建議。她也成立『Becoming Data Scientist』的Podcast,並活躍於近7萬名追蹤者的Twitter 帳號 @BecomingDataSci (編註:twitter 於 2023 年 8 月改名為 X )。她經常建議有志於資料科學的人一定要學習 SQL,因為這是最有價值且最能延用的技能。
目錄
第 1 章 資料來源與資料庫
1.1 資料來源
1.2 用整合開發工具或程式皆可連上資料庫
1.3 關聯式資料庫
1.4 維度資料倉儲
1.5 對資料來源提出疑問
1.6 認識農夫市集資料庫
1.7 資料科學的術語
1.8 將農夫市集資料庫匯入 MySQL
第 2 章 查詢資料的 SELECT 基本語法
2.1 SELECT 敘述句
2.2 查詢的語法結構
2.3 選擇要輸出的欄位,並可限制回傳的資料筆數
2.4 將輸出依欄位做排序的 ORDER BY 子句
2.5 單列欄位資料運算
2.6 數值四捨五入的函數
2.7 連接字串的函數
2.8 評估查詢指令的輸出
2.9 SELECT 語法小結
第 3 章 為查詢設定篩選條件的 WHERE
3.1 篩選出符合條件的資料
3.2 利用多重條件篩選
3.3 多個欄位條件式篩選
3.4 數種用於篩選的關鍵字
3.5 透過子查詢(subquery)做篩選
第 4 章 依條件作分支處理的 CASE
4.1 將每個分支個別處裡
4.2 以 CASE 產生二元欄位(Binary Flags)
4.3 將連續數值用 CASE 分出區間
4.4 透過 CASE 進行分類編碼
4.5 CASE 語法小結
第 5 章 連結兩個或多個表格資料的 JOIN
5.1 兩個表格透過關聯的欄位連結
5.2 LEFT JOIN 左外部連結
5.3 RIGHT JOIN 右外部連結
5.4 INNER JOIN 內部連結
5.5 比較 LEFT、RIGHT、INNER JOIN 的差異
5.6 篩選連結資料時常見的陷阱
5.7 JOIN 兩個以上的表格
第 6 章 摘要總結與聚合函數
6.1 將資料分組的 GROUP BY 子句
6.2 查詢分組與聚合資料
6.3 在聚合函數中放入算式
6.4 挑出最大與最小值的 MAX 和 MIN 函數
6.5 計數的 COUNT 函數與 DISTINCT 關鍵字
6.6 計算平均值的 AVG 函數
6.7 用 HAVING 子句篩選分組後的資料
6.8 在聚合函數中使用 CASE 語法
第 7 章 窗口函數與子查詢
7.1 窗口函數 ROW_NUMBER
7.2 窗口函數 RANK & DENSE RANK
7.3 窗口函數 NTILE
7.4 聚合窗口函數
7.5 窗口函數 LAG & LEAD
第 8 章 日期與時間函數
8.1 建立 datetime 資料型別欄位
8.2 提取 datetime 局部數值 EXTRACT、DATE、TIME
8.3 取得時間間隔的結束時間 DATE_ADD & DATE_SUB
8.4 計算時間差異 DATEDIFF
8.5 指定時間差異單位 TIMESTAMPDIFF
8.6 用聚合函數與窗口函數處理 datetime 資料
第 9 章 探索資料的結構與特性
9.1 EDA 準備要探索的標的
9.2 探索 product 表格
9.3 探索所有可能的欄位值
9.4 探索資料隨時間變化的情況
9.5 探索多個表格(1) - 彙總銷售量
9.6 探索多個表格(2) - 存貨量 vs. 銷售量
第 10 章 打造可重複分析用的自訂資料集
10.1 思考自訂資料集的需求
10.2 可重複使用自訂資料集的方法:CTEs 和 Views
10.3 SQL 為資料集增加更多可用性
第 11 章 進階查詢語法結構
11.1 將兩個查詢結果聯集的 UNION
11.2 自我連結(Self-Join)找出最大值
11.3 統計每週的新顧客與回頭客
第 12 章 建立機器學習需要的資料集
12.1 時間序列模型的資料集
12.2 二元分類模型的資料集
12.3 特徵工程的考量
12.4 建立資料集之後要做的事
第 13 章 開發分析資料集的案例
13.1 生鮮蔬果銷售分析資料集(1):影響銷售額的氣象、季節因素
13.2 生鮮蔬果銷售分析資料集(2):供應商產品與存貨因素
13.3 生鮮蔬果銷售分析資料集(3):整合市集與供應商的影響因素
13.4 顧客居住地區與人口統計分析資料集
13.5 價格分布與高低價分析資料集
第 14 章 資料儲存與修改
14.1 將 SQL 查詢的資料集儲存成表格、視圖
14.2 加入時間戳記欄位
14.3 在既存表格中插入列資料與更新數值
14.4 將 SQL 納入程式腳本
14.5 本書結尾
附錄 練習題解答
第 1 章 資料來源與資料庫
1.1 資料來源
1.2 用整合開發工具或程式皆可連上資料庫
1.3 關聯式資料庫
1.4 維度資料倉儲
1.5 對資料來源提出疑問
1.6 認識農夫市集資料庫
1.7 資料科學的術語
1.8 將農夫市集資料庫匯入 MySQL
第 2 章 查詢資料的 SELECT 基本語法
2.1 SELECT 敘述句
2.2 查詢的語法結構
2.3 選擇要輸出的欄位,並可限制回傳的資料筆數
2.4 將輸出依欄位做排序的 ORDER BY 子句
2.5 單列欄位資料運算
2.6 數值四捨五入的函數
2.7 連接字串的函數
2.8 評估查詢指令的輸出
2.9 SELECT 語法小結
第 3 章...