【Google Sheet】QUERY查詢,用聚集函數做統計、分類 (SUM, GROUP BY, LIMIT應用)

  • Post author:
Home » 莫非工具 » Google Sheets » 【Google Sheet】QUERY查詢,用聚集函數做統計、分類 (SUM, GROUP BY, LIMIT應用)

上一篇文章中,我們跟大家介紹基礎 QUERY 函數的應用,包含介紹 SELECT, WHERE 多條件篩選,以及ORDER BY 的用法。

今天的教學會走進階一點的路線,主要會分享聚集函數,像是 SUM (), AVG(), COUNT() 等等,還有介紹 GROUP BY, LIMIT 語法的應用。

如果你對於 QUERY 的基礎應用還不太熟,可以先回上篇文章複習,這樣才可以更快在今天的教學中上手喔!

那麼在正式開始介紹前,你可以點選連結,選擇左上角的檔案 > 建立副本,copy 數據出來一起做練習。

💡 小提醒:本文的教學範例會放在「聚集函數, GROUP BY/ORDER BY/LIMIT 教學」頁面喔!

聚集函數 (Aggregate Function)

什麼是聚集函數 (Aggregate Function)?聚集函數會針對一組值進行計算,並返回單一個值的結果。舉例來說:

  • SUM():回傳指定欄位內所有數字總和。
  • COUNT():回傳指定欄位內所有含有資料的儲存格數量。
  • AVG():回傳指定欄位內所有數字的平均值。
  • MAX():回傳指定欄位內最大值。
  • MIN():回傳指定欄位內最小值。

以 SUM() 函數來說,它是針對欄位內的值進行加總,最後回傳加總的數字。因此,SUM() 符合上面提到聚集函數的定義。


聚集函數怎麼用

SUM() 範例

這邊我們使用範例數據來解釋 SUM() 的應用。

假設我們想知道各品類 (Category) 對應的總購買金額(Purchase Amount) 該怎麼做?

你當然可以使用試算表的 SUMIF 功能,不過如果想套用 QUERY 的話,你可以寫成:

= QUERY(Raw_data!E:F,"SELECT E, SUM(F) GROUP BY E")

同時會得到以下結果:

你可以得到數據中的四個品類,他們對應的購買金額加總。

看到這裡你可能會覺得奇怪,SELECT 後面出現的 GROUP BY 是什麼意思呢?下面讓我們進一步解釋。


GROUP BY 語句

GROUP BY 顧名思義就是「把資料按照 XXX 分組」。

從上面的例句,”GROUP BY E” 的意思也就是GROUP BY Category (因為Category在E欄),是指把資料按照品類分組。

那麼如果公式中不寫G ROUP BY 會發生什麼事呢?你就會得到 #VALUE! 的結果,如下:

因此,在 QUERY 中使用聚集函數時,大家要記得搭配 GROUP BY 。這樣 QUERY 才知道你希望把資料按照怎樣分組。

GROUP BY 範例

這邊再讓我們看一個聚集函數 & GROUP BY 的使用方法。

假設我們想知道每個商品所對應的平均評分,該怎麼做呢?

你可以寫成:

=QUERY(Raw_data!A:K,"SELECT D, AVG(K) GROUP BY D")

這邊我們想求的是評分的平均值,所以要使用 AVG() 函數,同時使用 GROUP BY 讓資料按照 item 分組,得到的結果如下:


LIMIT 語句

LIMIT 顧名思義就是限制的意思。主要是用來限制資料的筆數,用法十分簡單:

  • 限制10筆資料:LIMIT 10
  • 限制500筆資料:LIMIT 500

通常會跟著 ORDER BY 一起使用,寫成:ORDER BY A DESC LIMIT 100,時常使用在求前 100 名、求倒數 3 名這樣的使用情境中。

LIMIT 範例

同樣套用上面的範例,這次我們要求前三名商品的平均評分,那麼該怎麼做呢?

我們只要在最後加上一行 LIMIT 3 就可以了。可以寫成:

=QUERY(Raw_data!A:K,"SELECT D, AVG(K) GROUP BY D ORDER BY AVG(K) DESC LIMIT 3")

最終得出的結果如下:

那麼以上是本期文章的內容,如果你有其他問題歡迎來信 themurphymofei@gmail.com 或是留言給我們!

Murphy

我是Murphy,是一名職場人。這裡主要分享職場問題、職場話題、求職資訊,還有那些我所熱愛的事物。

This Post Has 2 Comments

歡迎留言,與我們分享你的看法!