摘要:在本教程中,您將學習 SQL 聚合函式,包括 AVG()、COUNT()、MIN()、MAX() 和 SUM()。
SQL 聚合函式對一組值進行計算並返回單個值。例如,平均值函式 AVG 接受一個值列表並返回平均值。
由於聚合函式對一組值進行操作,因此它經常與 SELECT 語句的 GROUP BY 子句一起使用。GROUP BY 子句將結果集劃分為多個值組,聚合函式為每個組返回一個單一值。
下圖說明了聚合函式如何與 GROUP BY 子句一起使用
SELECT c1, aggregate_function(c2)
FROM table
GROUP BY c1;Code language: SQL (Structured Query Language) (sql)以下是常用的 SQL 聚合函式
-
AVG()– 返回一個集合的平均值。 -
COUNT()– 返回一個集合中的專案數量。 -
MAX()– 返回一個集合中的最大值。 -
MIN()– 返回一個集合中的最小值 -
SUM()– 返回一個集合中所有值或不同值的總和
除了 COUNT() 函式外,SQL 聚合函式會忽略 NULL。
您只能在以下情況中將聚合函式用作表示式
AVG #
AVG() 函式返回一個集合中的平均值。下圖說明了 AVG() 函式的語法
AVG( ALL | DISTINCT)Code language: SQL (Structured Query Language) (sql)ALL 關鍵字指示 AVG() 函式計算所有值的平均值,而 DISTINCT 關鍵字則強制該函式僅對不同的值進行操作。預設情況下,使用 ALL 選項。
以下示例展示瞭如何使用 AVG() 函式計算每個部門的平均工資
SELECT
department_name, ROUND(AVG(salary), 0) avg_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
MIN #
MIN() 函式返回一個集合中的最小值。下圖說明了 MIN() 函式的語法
MIN(column | expression)Code language: SQL (Structured Query Language) (sql)例如,以下語句返回每個部門員工的最低工資
SELECT
department_name, MIN(salary) min_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
MAX #
MAX() 函式返回一個集合中的最大值。MAX() 函式具有以下語法
MAX(column | expression)Code language: SQL (Structured Query Language) (sql)例如,以下語句返回每個部門員工的最高工資
SELECT
department_name, MAX(salary) highest_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
COUNT #
COUNT() 函式返回一個集合中的專案數量。下圖顯示了 COUNT() 函式的語法
COUNT ( [ALL | DISTINCT] column | expression | *)Code language: SQL (Structured Query Language) (sql)例如,以下示例使用 COUNT(*) 函式返回每個部門的員工人數
SELECT
department_name, COUNT(*) headcount
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;Code language: SQL (Structured Query Language) (sql)
SUM #
SUM() 函式返回所有值的總和。下圖說明了 SUM() 函式的語法
SUM(ALL | DISTINCT column)Code language: SQL (Structured Query Language) (sql)例如,以下語句返回每個部門所有員工的總工資
SELECT
department_id, SUM(salary)
FROM
employees
GROUP BY department_id;
Code language: SQL (Structured Query Language) (sql)
在本教程中,您學習了最常用的 SQL 聚合函式,包括 AVG()、COUNT()、MIN()、MAX() 和 SUM() 函式。