在本教學中,您將了解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
語句的選擇列表,子查詢或外部查詢。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;
執行上面範例程式碼,得到以下結果 -
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;
執行上面範例程式碼,得到以下結果 -
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;
執行上面範例程式碼,得到以下結果 -
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;
執行上面範例程式碼,得到以下結果:
SUM()
函式返回所有值的總和。 以下說明了SUM()
函式的語法:
SUM(ALL | DISTINCT column)
例如,以下語句返回每個部門中所有員工的總薪水:
SELECT
department_id, SUM(salary)
FROM
employees
GROUP BY department_id;
執行上面範例程式碼,得到以下結果:
在本教學中,您學習了最常用的SQL聚合函式,包括:AVG()
,COUNT()
,MIN()
,MAX()
和SUM()
函式。