在 SQL 中,聚合函式是一類用於對資料集進行 彙總計算 的特殊函式。它們可以對一組資料執行諸如計數、求和、平均值、最大值和最小值等操作。聚合函式通常在 SELECT 語句中配合 GROUP BY 子句使用,用於對分組後的資料進行彙總分析。
常見的聚合函式包括:
COUNT:計算指定列的行數或非空值的數量。
SUM:計算指定列的數值之和。
AVG:計算指定列的數值平均值。
MAX:找出指定列的最大值。
MIN:找出指定列的最小值。
示例
假設有一個訂單表 orders
,包含以下欄位:order_id
(訂單號)、customer_id
(客戶編號)、amount
(訂單金額)。資料如下:
order_id | customer_id | amount |
---|---|---|
1 | A001 | 100 |
2 | A002 | 200 |
3 | A001 | 150 |
4 | A003 | 50 |
1)使用聚合函式 COUNT
計算訂單表中的總訂單數:
SELECT COUNT(*) AS order_num FROM orders
查詢結果:
order_num |
---|
4 |
2)使用聚合函式 COUNT
(DISTINCT 列名) 計算訂單表中不同客戶的數量:
SELECT COUNT(DISTINCT customer_id) AS customer_num FROM orders
查詢結果:
customer_num |
---|
3 |
3)使用聚合函式 SUM
計算總訂單金額:
SELECT SUM(amount) AS total_amount FROM orders
查詢結果:
total_amount |
---|
500 |
題目
假設有一個學生表 student
,包含以下欄位:id
(學號)、name
(姓名)、class_id
(班級編號)、score
(成績)。請你編寫一個 SQL 查詢,彙總學生表中所有學生的總成績(total_score)、平均成績(avg_score)、最高成績(max_score)和最低成績(min_score)。
id | name | class_id | score |
---|---|---|---|
1 | 雞哥 | 1 | 2.5 |
2 | 魚皮 | 1 | 400 |
3 | 熱dog | 2 | 600 |
4 | 摸FISH | 2 | 360 |
5 | 李阿巴 | 3 | 120 |
6 | 老李 | 3 | 500 |
7 | 李變數 | 4 | 390 |
8 | 王加瓦 | 4 | 0 |
9 | 趙派森 | 4 | 600 |
10 | 孫加加 | 5 | 100.5 |
點選檢視答案
select
SUM(score) as total_score,
AVG(score) as avg_score,
MAX(score) as max_score,
MIN(score) as min_score
from student