在本教學中,您將瞭解SQL聚合函數,包括:AVG(),COUNT(),MIN(),MAX()和SUM()。
SQL聚合函數計算一組值並返回單個值。 例如,平均函數(AVG)採用值列表並返回平均值。
因為聚合函數對一組值進行操作,所以它通常與SELECT語句的GROUP BY子句一起使用。 GROUP BY子句將結果集劃分為值分組,聚合函數為每個分組返回單個值。
SELECT c1, aggregate_function(c2)
FROM table
GROUP BY c1;
以下是常用的SQL聚合函數:
除COUNT()函數外,SQL聚合函數忽略null值。只能將聚合函數用作運算式,如下所示:
SELECT語句的選擇列表,子查詢或外部查詢。- 一個HAVING子句
1. AVG()函數
AVG()函數返回集合中的平均值,以下是AVG()函數的語法:
AVG( ALL | DISTINCT)
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;
執行上面示例代碼,得到以下結果 -
2. MIN()函數
MIN()函數返回集合的最小值。 以下是MIN()函數的語法:
MIN(column | expression)
例如,以下語句返回每個部門中員工的最低工資:
SELECT
department_name, MIN(salary) min_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;
執行上面示例代碼,得到以下結果 -

3. MAX()函數
MAX()函數返回集合的最大值,MAX()函數具有以下語法:
MAX(column | expression)
例如,以下語句返回每個部門中員工的最高薪水:
SELECT
department_name, MAX(salary) highest_salary
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;
執行上面示例代碼,得到以下結果 -

4. COUNT()函數
COUNT()函數返回集合中的專案數。 以下顯示了COUNT()函數的語法:
COUNT ( [ALL | DISTINCT] column | expression | *)
例如,以下示例使用COUNT(*)函數返回每個部門的人數:
SELECT
department_name, COUNT(*) headcount
FROM
employees
INNER JOIN
departments USING (department_id)
GROUP BY department_name
ORDER BY department_name;
執行上面示例代碼,得到以下結果:

5. SUM()函數
SUM()函數返回所有值的總和。 以下說明了SUM()函數的語法:
SUM(ALL | DISTINCT column)
例如,以下語句返回每個部門中所有員工的總薪水:
SELECT
department_id, SUM(salary)
FROM
employees
GROUP BY department_id;
執行上面示例代碼,得到以下結果:

在本教學中,您學習了最常用的SQL聚合函數,包括:AVG(),COUNT(),MIN(),MAX()和SUM()函數。
上一篇:
SQL自連接
下一篇:
SQL Avg()函數
