





資料科學SQL工作術: 以MySQL為例與情境式ChatGPT輔助學習
SQL for Data Scientists: A Beginner's Guide for Building Datasets for Analysis
● 資深資料科學家寫給有志從事資料科學者的貼心指導
● 學習作者觀察資料的視角,培養資料分析思維
● 提供書中 SQL 程式碼下載,節省讀者輸入時間
● 依學習情境所需穿插 40 多個 "ChatGPT 來幫忙" 說明框
● 各章練習題皆附參考答案,非常適合自主學習
內容簡介
內容介紹:
[學會關鍵 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
來幫忙" 說明框
● 各章練習題皆附參考答案,非常適合自主學習
目錄:
第 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 本書結尾
附錄 練習題解答
作者介紹
她時常在科技與高等教育會議及聚會上演講,同時也在業界許多刊物分享其在資料科學上的成果以及職涯建議。她也成立『Becoming Data Scientist』的Podcast,並活躍於近7萬名追蹤者的Twitter 帳號 @BecomingDataSci (編註:twitter 於 2023 年 8 月改名為 X )。她經常建議有志於資料科學的人一定要學習 SQL,因為這是最有價值且最能延用的技能。
規格
退貨說明
退貨須知:
- 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
- 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。
依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
- 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
- 報紙、期刊或雜誌。
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
- 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
- 國際航空客運服務。
若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:
- 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
- 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
- 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
- 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。







