GROUP BY 敘述句 (SQL GROUP BY Statement)
GROUP BY 敘述句搭配聚合函數 (aggregation function) 使用,是用來將查詢結果中特定欄位值相同的資料分為若干個群組,而每一個群組都會傳回一個資料列。若沒有使用 GROUP BY,聚合函數針對一個 SELECT 查詢,只會返回一個彙總值。
聚合函數指的也就是 AVG()、COUNT()、MAX()、MIN()、SUM() 等這些內建函數。
GROUP BY 語法 (SQL GROUP BY Syntax)
SELECT column_name(s), aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name1, column_name2...;
GROUP BY 查詢用法 (Example)
假設我們想從下面的 orders 資料表中查詢個別顧客的訂單金額總合:
O_Id | Price | Customer |
---|---|---|
1 | 1000 | 張一 |
2 | 2000 | 王二 |
3 | 500 | 李三 |
4 | 1300 | 張一 |
5 | 1800 | 王二 |
我們可以下這個 SELECT 查詢敘述句:
SELECT Customer, SUM(Price) FROM orders
GROUP BY Customer;
返回的結果如下:
Customer | SUM(Price) |
---|---|
張一 | 2300 |
王二 | 3800 |
李三 | 500 |
了解 GROUP BY 的用途了嗎?它將 Customer 欄位值相同的資料都分作同一組來計算 (加總) 囉!
若 GROUP BY 後面指定兩個以上的欄位時,則要符合所有欄位值皆相同資料才會被分為一組。