本視頻約120秒。碎片時間,關注收藏。
聚合函數
SQL 聚合函數計算一組值,並返回單個值。
聚合函數語法
<code>SELECT 列名1,聚合函數(列名2) FROM 表名 GROUP BY 列名1/<code>
因為聚合函數對一組值進行操作,所以它通常與 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(*)。
聚合函數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()
<code>SELECT AVG(age) AS avg_age FROM students /<code>
該語句計算學生的平均年齡。
<code>SELECT name, age FROM students WHERE age > (SELECT AVG(age) FROM students )/<code>
該語句查詢年齡高於學生平均年齡的基本信息。
聚合函數使用:函數MAX() / MIN()
<code>SELECT MAX(age) AS max_age FROM students /<code>
該語句計算學生的最大年齡。
<code>SELECT MIN(age) AS min_age FROM students /<code>
該語句計算學生的最小年齡。
聚合函數使用:函數COUNT() / SUM()
<code>SELECT COUNT(sid) AS s_cnt FROM students /<code>
統計學生人數。
<code>SELECT SUM(age) AS age_total FROM students /<code>
SUM(age) 對學生年齡字段求和。
碎片時間,關注收藏。
往期視頻: