Google 的查詢語言是一種快速且強大的分析 Google 試算表中資料的方法,它藉用了 SQL 中使用的許多模式。本教學將幫助您熟悉如何使用查詢來回答範例資料集中的特定問題的基礎知識。
首先我們需要一些範例資料來使用。我們將使用導入函數從維基百科中提取世界人口資料表:
=IMPORTHTML("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)", "table", 3)
此函數在上述 URL 中尋找第三個表,從每個單元格中抓取數據,並將其匯入到您的 Google 表格中。涼爽的!但是,讓我們再做一件事情,讓查詢這些資料變得更容易。
按一下任何包含資料的儲存格以突出顯示它,然後按 CMD + A 以突出顯示整個表格。反白顯示整個表格後,按一下「資料」>「命名範圍」以開啟「命名範圍」面板 - 它將從右側飛出。
命名範圍是您可以賦予一組儲存格的暱稱。讓我們命名我們的“國家”。
偉大的!現在我們準備開始查詢!
反白顯示儲存格 J1 — 我們將使用此儲存格輸入以下所有查詢:
顯示整個資料集的副本:
=QUERY(countries, "select *",1)
僅顯示國家和地區列:
=QUERY(countries, "select B, C",1)
WHERE 子句是開始從資料集中提出更具體問題的好方法。
顯示人口大於或等於 1 億的國家:
=QUERY(countries, "SELECT B, E where E >= 100000000")
顯示名稱中帶有“es”的國家/地區:
=QUERY(countries, "SELECT B where B contains 'es'")
顯示名稱中不帶“es”的國家/地區:
=QUERY(countries, "SELECT B where not B contains 'es'")
顯示以“S”開頭的國家:
=QUERY(countries, "SELECT B where B STARTS WITH 'S'")
顯示以“s”結尾的國家/地區(請記住區分大小寫:
=QUERY(countries, "SELECT B where B ENDS WITH 's'")
顯示包含“United”的國家/地區:
=QUERY(countries, "SELECT B where B CONTAINS 'United'")
讓我們在 AND 子句中加入更具體的內容!
顯示美洲人口少於 100,000的所有國家:
=QUERY(countries, "select B, F WHERE C = 'Americas' AND F <= 100000", 1)
AND 子句可以無限地串在一起。
此查詢返回美洲人口少於 100,000 和超過 10,000 的所有國家/地區:
=QUERY(countries, "select B, F WHERE C = 'Americas' AND F <= 100000 AND F >= 10000", 1)
也許在探索資料集時您想要做的第一件事就是查看一些簡單的聚合:某些欄位中的最大值、最小值和平均值。讓我們找出資料集中各國 2017 年的最大、最小和平均人口:
=QUERY(countries, "select max(F), min(F), avg(F)", 1)
這很酷,
透過稍加修改,我們可以看到每個大陸的最大、最小和平均人口:
=QUERY(countries, "select C, max(F), min (F), avg(F) GROUP by C", 1)
「計數」和「分組依據」一起使用是探索資料集的另一種好方法。結合起來,它們允許您對一列或多列中的項目進行計數,並查看和聚合視圖。
讓我們使用這兩個子句來查看清單中每個地區有多少個國家/地區:
=QUERY(countries, "SELECT C, count(B) GROUP by C", 1)
讓我們新增「ORDER BY」子句來顯示所有區域的列表,按從最高到最低的升序排列:
=QUERY(countries, "SELECT C, count(B) GROUP by C ORDER by C asc", 1)
「PIVOT」子句會將值聚合到一行中。
例如,如果我們想按地區顯示 2017 年所有人口的總和,我們可以使用:
=QUERY(countries, "SELECT sum(F) pivot C", 1)
您也可以透過在查詢中執行數學運算來分析資料。
現在讓我們顯示 2017 年人口占世界總人口百分比的國家列表:
=QUERY(countries, "select B, C, (F / 7550262101) * 100", 1)
我們的百分比資料看起來很酷,但列標題非常可讀。我們可以單擊單元格並重命名它 - 但我們也可以通過添加“標籤”參數將名稱設置為查詢的一部分:
=QUERY(countries, "select B, C, (F / 7550262101) * 100 Label (F / 7550262101) * 100 'Percentage'", 1)
Google 查詢語文文件:https://developers.google.com/chart/interactive/docs/querylanguage
Coding Is For Losers 的 Google Sheets 查詢功能概述:https://codingisforlosers.com/google-sheets-query-function/#why