Google資料分析課程筆記-5
Course 5 - Analyze Data to Answer Questions
簡介
This is the fifth course in the Google Data Analytics Certificate. In this course, you’ll explore what it means to actually analyze your data. You’ll take what you’ve learned up to this point and apply it to make sense of the data you’ve collected. You’ll learn how to organize and format your data using spreadsheets and SQL to help you look at and think about your data in different ways. You’ll also find out how to perform complex calculations with your data to address business objectives. You’ll learn how to use formulas, functions, and SQL queries as you conduct your analysis.
章節大綱
- Organize data for more effective analysis
了解如何使用試算表以及 SQL 進行排序和篩選。 - Format and adjust data
了解轉換和格式化資料,以及學習利用 SQL 組合資料。 - Aggregate data for analysis
學習如何使用 SQL 從多個資料庫提取資料進行組合。 - Perform data calculations
利用試算表中的公式、函數和資料透視表以及 SQL 幫助計算,並且學習使用 SQL 管理臨時表格。
內容筆記
Module 1 - Organize data for more effective analysis
試算表中的排序
如果排序的條件較少的話,可以使用內建的 SORT
函數,而如果條件較多則建議使用內建的排序功能。
- SORT(範圍, 排序欄, 遞增, [排序欄_2, 遞增_2, …])
以一欄或多欄中的值為依據,排列指定陣列或範圍內的資料列順序。 - 全選資料,點擊
資料 > 排序範圍 > 範圍排序進階選項
SQL 中的排序
預設為升序排序,如果要改成降序只要在後面加上 DESC
即可
1 | ORDER BY column_name1 ASC|DESC, column_name2 ASC|DESC... |
Module 2 - Format and adjust data
試算表轉換單位
CONVERT(數值, 初始單位, 目標單位),利用 CONVERT
函數可以將數值轉換成其他計量單位。
1 | =CONVERT (A1, "F", “C”) |
常用的單位 (使用時須注意大小寫):
- 重量:u、grain、g、ozm、lbm、ton…
- 距離:ang、Picapt、pica、in、ft、yd、m…
- 時間:sec、min、hr、day、yr
- 溫度:C、F、K
- 資訊:bit、byte
- 速度:m/hr、mph、kn、admkn、m/s
SQL 字串合併
函數 | 範例 | 結果 |
---|---|---|
CONCAT(string1, string2, …, string_n) | CONCAT(‘Google’, ‘.com’) | Google.com |
CONCAT_WS(separator, string1, string2, …, string_n) | CONCAT_WS(’ . ', ‘www’, ‘google’, ‘com’) | www.google.com |
|| or + | ‘Google’ || ‘.com’ | Google.com |
Module 3 - Aggregate data for analysis
JOIN 函數
JOIN
函數可以根據相關欄位來組合多個表中的列,根據組合的關係可以分為 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 OUTER JOIN,可以表示如下圖 (取自 How to Learn SQL JOINs) :

1 | SELECT |
子查詢
透過子查詢可以組合不同的邏輯,透過單一查詢完成更多工作,並且使程式更有效率且容易閱讀。
SELECT
中的子查詢
1 | SELECT |
透過子查詢,加入 avg_num_bikes_available
作為欄位。
FROM
中的子查詢
1 | SELECT |
利用子查詢直接建立一個表 station_num_trips
,並透過 FROM
去存取。
WHERE
中的子查詢
1 | SELECT |
利用子查詢建立一個表,之後用 IN
來篩選出有在表內的特定 id。
HAVING 子句
因為 WHERE
沒辦法和聚合函數一起使用,因此必須使用 HAVING
來替代。
- 聚合函數類型
- MIN()
- MAX()
- COUNT()
- SUM()
- AVG()
1 | HAVING condition |
Module 4 - Perform data calculations
更多試算表函數
- SUMIF(範圍, 條件, [加總範圍])
傳回範圍內符合條件的項目總和,若未指定加總範圍,會使用範圍
引數指定的範圍來計算總和。 - SUMIFS(加總範圍, 條件核對範圍1, 條件1, [條件核對範圍2, 條件2, …])
傳回根據多個條件而得出的範圍總和,須注意和SUMIF
的參數順序不同。 - COUNTIFS(條件核對範圍1, 條件1, [條件核對範圍2, 條件2, …])
傳回根據多個條件而得出的範圍大小。 - SUMPRODUCT(陣列1, [陣列2], …)
針對兩個或更多大小相同的陣列或範圍,計算彼此對應項目的乘積總和。
資料驗證
資料驗證有助於確認資料的完整性,並確保數據是乾淨的。
類型 | 解釋 | 範例 |
---|---|---|
資料類型 | 資料是否與與欄位定義的資料類型相符 | 年齡值必須是數字類型 |
資料範圍 | 資料是否落在為欄位定義可接受的範圍內 | 分數的數據應介於 0 和 100 之間 |
資料約束 | 資料是否符合欄位的某些條件或標準 | 顧客數量必須為整數 |
資料連續 | 根據背景判斷資料是否有意義 | 產品出貨日期不能早於生產日期 |
資料結構 | 檢查資料是否符合規定的結構 | 網頁資料出現錯誤顯示 |
程式檢查 | 檢查程式在輸入期間是否出現前述錯誤 | 在某些輸入值可能出現異常 |
臨時表
在進行分析前,可以利用 WITH
子句建立臨時的表供之後的分析使用,類似把子查詢的表先建立出來的概念,而結束查詢之後它們會自動從資料庫中刪除。
1 | WITH table_name AS( |
詞彙
- Data aggregation (資料聚合): The process of gathering data from multiple sources and combining it into a single, summarized collection.
- Subquery (子查詢): A SQL query that is nested inside a larger query
- Temporary table (臨時表): A database table that is created and exists temporarily on a database server.