SQL 聚合函數
聚合函數 (SQL Aggregate Functions)
聚合函數是對一組值執行計算,並返回單一值的函數。聚合函數經常與 SELECT 語句的 GROUP BY 子句一同使用。
以下是 SQL 中常用的聚合函數:
| 函數 | 說明 |
|---|---|
| COUNT() | 計算列數 |
| SUM() | 計算總和 |
| AVG() | 計算平均值 |
| MIN() | 取得最小值 |
| MAX() | 取得最大值 |
聚合函數語法 (SQL Aggregate Functions Syntax)
SELECT aggregate_function(column_name)
FROM table_name
WHERE condition;
聚合函數用法 (Example)
假設我們有一個員工資料表 employees 如下:
| Name | Department | Salary |
|---|---|---|
| 張一 | 業務部 | 35000 |
| 王二 | 資訊部 | 42000 |
| 李三 | 業務部 | 38000 |
| 趙四 | 資訊部 | 45000 |
| 陳五 | 人資部 | 40000 |
COUNT() 函數
COUNT() 用來計算符合條件的資料列數。
SELECT COUNT(*) AS total_employees
FROM employees;
查詢結果如下:
| total_employees |
|---|
| 5 |
SUM() 函數
SUM() 用來計算數值欄位的總和。
SELECT SUM(Salary) AS total_salary
FROM employees;
查詢結果如下:
| total_salary |
|---|
| 200000 |
AVG() 函數
AVG() 用來計算數值欄位的平均值。
SELECT AVG(Salary) AS avg_salary
FROM employees;
查詢結果如下:
| avg_salary |
|---|
| 40000 |
MIN() 函數
MIN() 用來取得欄位中的最小值。
SELECT MIN(Salary) AS min_salary
FROM employees;
查詢結果如下:
| min_salary |
|---|
| 35000 |
MAX() 函數
MAX() 用來取得欄位中的最大值。
SELECT MAX(Salary) AS max_salary
FROM employees;
查詢結果如下:
| max_salary |
|---|
| 45000 |
搭配 GROUP BY 使用
聚合函數經常搭配 GROUP BY 來對分組後的資料進行計算。
SELECT Department, COUNT(*) AS headcount, AVG(Salary) AS avg_salary
FROM employees
GROUP BY Department;
查詢結果如下:
| Department | headcount | avg_salary |
|---|---|---|
| 業務部 | 2 | 36500 |
| 資訊部 | 2 | 43500 |
| 人資部 | 1 | 40000 |