影片載入中。。。
本影片約120秒。碎片時間,關注收藏。
聚合函式
SQL 聚合函式計算一組值,並返回單個值。
聚合函式語法
SELECT 列名1,聚合函式(列名2)FROM 表名GROUP BY 列名1
因為聚合函式對一組值進行操作,所以它通常與 GROUP BY 子句一起使用。GROUP BY 子句將結果集劃分為值分組,聚合函式為每個分組返回單個值。
常見的聚合函式:AVG()
、
COUNT()
、
MAX()
、
MIN()
、
SUM()
。
除 COUNT() 函式之外,SQL 聚合函式忽略 NULL 值。
聚合函式介紹
聚合函式AVG詳解
AVG 函式是一個聚合函式,用於計算集合的平均值。 以下說明了AVG 函式的語法:
AVG([ALL|DISTINCT] expression)
如果使用 ALL 關鍵字,AVG 函式將獲取計算中的所有值。
預設情況下,無論是否指定,AVG 函式都使用 ALL。如果明確指定 DISTINCT 關鍵字,AVG函式將僅在計算中採用唯一值。
例如,有一組資料集 (1,2,3,3,4) 並將 AVG(ALL) 應用於此集合,AVG 函式將執行以下計算:(1+2+3+3+4)/5 = 2。6
但是,如果指定:AVG(DISTINCT) 將按如下方式處理:(1+2+3+4)/4 = 2。5
聚合函式SUM詳解
SUM 函式是一個聚合函式,它返回所有或不同值的總和。需要注意的是,只能將 SUM 函式應用於數字列。以下說明了 SUM 函式的語法。
SUM([ALL|DISTINCT] expression)
ALL 運算子用於將聚合應用於所有值。 SUM 函式預設使用 ALL 運算子。
例如,如果有一組集合值:(1,2,3,3,NULL)。 使用 SUM 函式將返回 9,請注意,SUM函式忽略NULL 值。要計算唯一值的總和,可以使用 DISTINCT 運算子,例如,集合 (1,2,3,3,NULL) 的SUM(DISTINCT) 為 6。
聚合函式COUNT詳解
COUNT 函式是一個聚合函式,它返回符合條件行數。以下是 COUNT 函式的語法:
COUNT ([ALL | DISTINCT] expression)
COUNT 函式的結果取決於傳遞給它的引數。預設情況下,COUNT 函式使用 ALL 關鍵字,無論是否指定它。 ALL 關鍵字表示考慮組中的所有專案,包括重複值。
例如,如果有一個數據集合 (1,2,3,3,4,4) 並應用 COUNT 函式,則結果為 6。
如果明確指定 DISTINCT 關鍵字,則僅考慮唯一的非 NULL 值。 如果將 COUNT 函式應用於資料集 (1,2,3,3,4,4),則 COUNT 函式返回 4。
另一種形式的 COUNT 函式接受星號 (*) 作為引數如下:COUNT(*)
。
拍攝於20200408
聚合函式MAX/MIN詳解
MAX() 函式,用於在一組值中查詢最大值。 MAX 函式的語法:MAX(expression)。
MAX 函式忽略 NULL 值。與SUM
、
COUNT和AVG函式不同,DISTINCT 選項不適用於 MAX 函式。
MIN() 函式同理。
聚合函式使用示例
假設表名
為
students
,
包含以下幾個欄位:
其中,各欄位定義為:sid為學生ID、name為姓名、gender為性別,age為年齡,province為所在省份,city為所在城市,district為所在區 (NULL表示未上報)。
聚合函式使用:函式AVG()
SELECT AVG(age) AS avg_age FROM students
該語句計算學生的平均年齡。
SELECT name, age FROM studentsWHERE age > (SELECT AVG(age) FROM students )
該語句查詢年齡高於學生平均年齡的基本資訊。
聚合函式使用:函式MAX() / MIN()
SELECT MAX(age) AS max_age FROM students
該語句計算學生的最大年齡。
SELECT MIN(age) AS min_age FROM students
該語句計算學生的最小年齡。
聚合函式使用:函式COUNT() / SUM()
SELECT COUNT(sid) AS s_cnt FROM students
統計學生人數。
SELECT SUM(age) AS age_total FROM students
SUM(age) 對學生年齡欄位求和。
碎片時間,關注收藏。
拍攝於20200408
往期影片:
每天學點SQL(001) SELECT語句
每天學點SQL(002) DISTINCT語句
每天學點SQL(003) WHERE子句
每天學點SQL(004) AND 或 OR
每天學點SQL(005) ORDER BY語句