SQL聚合函數
在本教程中,您將瞭解SQL聚合函數,包括:AVG()
,COUNT()
,MIN()
,MAX()
和SUM()
。
SQL聚合函數計算一組值並返回單個值。 例如,平均函數(AVG
)採用值列表並返回平均值。
因爲聚合函數對一組值進行操作,所以它通常與SELECT
語句的GROUP BY子句一起使用。 GROUP BY
子句將結果集劃分爲值分組,聚合函數爲每個分組返回單個值。
SELECT c1, aggregate_function(c2)
FROM table
GROUP BY c1;
以下是常用的SQL聚合函數:
- AVG() - 返回集合的平均值。
- COUNT() - 返回集合中的項目數。
- MAX() - 返回集合中的最大值。
- MIN() - 返回集合中的最小值
- SUM() - 返回集合中所有或不同值的總和。
除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()
函數。