PostgreSQL - 第 10 天 - 聚合函數 (SUM, AVG, COUNT)
課程簡介
聚合函數是用來對一組數據進行計算並返回單一結果的函數。常見的聚合函數包括 SUM
、AVG
和 COUNT
,它們通常用於計算數據的總和、平均值以及記錄的數量。這些函數對於進行數據分析和報表生成非常有用。
聚合函數概述
SUM
:計算某個欄位數值的總和。AVG
:計算某個欄位數值的平均值。COUNT
:計算記錄的數量,常用來統計符合條件的行數。
這些聚合函數可以與 GROUP BY
子句一起使用,對數據進行分組計算。
使用 SUM 函數
SUM
函數用來計算某個數值欄位的總和。
語法
1
SELECT SUM(欄位名) FROM 表名 WHERE 條件;
範例
計算員工的總月薪
查詢
員工
表中所有員工的月薪總和:1
SELECT SUM(月薪) FROM 員工;
計算某個部門員工的總月薪
查詢
員工
表中職位為「工程師」的所有員工的總月薪:1
SELECT SUM(月薪) FROM 員工 WHERE 職位 = '工程師';
使用 AVG 函數
AVG
函數用來計算某個數值欄位的平均值。
語法
1
SELECT AVG(欄位名) FROM 表名 WHERE 條件;
範例
計算所有員工的平均月薪
查詢
員工
表中所有員工的月薪平均值:1
SELECT AVG(月薪) FROM 員工;
計算某部門員工的平均月薪
查詢
員工
表中職位為「工程師」的員工的平均月薪:1
SELECT AVG(月薪) FROM 員工 WHERE 職位 = '工程師';
使用 COUNT 函數
COUNT
函數用來計算符合條件的記錄數量。它可以計算某個欄位的非空值數量,也可以計算符合條件的行數。
語法
1
SELECT COUNT(欄位名) FROM 表名 WHERE 條件;
如果希望計算所有記錄數量(包括空值),則可以使用 COUNT(*)
。
範例
計算員工的總數
查詢
員工
表中所有員工的總數:1
SELECT COUNT(*) FROM 員工;
計算某職位員工的數量
查詢
員工
表中職位為「工程師」的員工數量:1
SELECT COUNT(*) FROM 員工 WHERE 職位 = '工程師';
計算某部門的非空月薪記錄數量
查詢
員工
表中職位為「工程師」的員工月薪非空值的數量:1
SELECT COUNT(月薪) FROM 員工 WHERE 職位 = '工程師' AND 月薪 IS NOT NULL;
與 GROUP BY 子句一起使用
聚合函數通常與 GROUP BY
子句一起使用,對資料進行分組計算。GROUP BY
會根據指定的欄位對數據進行分組,然後對每個組進行聚合計算。
語法
1
SELECT 欄位1, 聚合函數(欄位2) FROM 表名 GROUP BY 欄位1;
範例
按職位分組,計算每個職位的總月薪
查詢
員工
表中按職位
分組後,每個職位的月薪總和:1
SELECT 職位, SUM(月薪) FROM 員工 GROUP BY 職位;
按職位分組,計算每個職位的平均月薪
查詢
員工
表中按職位
分組後,每個職位的月薪平均值:1
SELECT 職位, AVG(月薪) FROM 員工 GROUP BY 職位;
按部門分組,計算每個部門的員工數量
查詢
員工
表中按部門
分組後,每個部門的員工數量:1
SELECT 部門, COUNT(*) FROM 員工 GROUP BY 部門;
本日總結
今天我們學習了三個常用的聚合函數:SUM
、AVG
和 COUNT
。這些函數能幫助我們快速地對數據進行計算和統計。與 GROUP BY
子句搭配使用,可以對數據進行分組統計,對數據分析和報表生成非常有幫助。明天我們將學習如何使用 HAVING
子句對分組結果進行過濾。