聚合函數(shù)(1)
本小節(jié)介紹 MySQL 常見(jiàn)的聚合函數(shù),實(shí)際業(yè)務(wù)中諸如 總數(shù)、平均值、總和 這樣的數(shù)據(jù)是沒(méi)有存儲(chǔ)在數(shù)據(jù)表中,如需要獲取這些數(shù)據(jù)時(shí),使用 MySQL 的聚合函數(shù)可以獲取它們,MySQL 主要的聚合函數(shù)有 AVG、COUNT、SUM、MIN、MAX,本小節(jié)介紹 AVG、COUNT、SUM。
1. AVG函數(shù)求平均值
以 teacher 表為例,先查所有 teacher 信息:
SELECT * FROM teacher;
查詢結(jié)果如下圖:
可以使用 AVG()
函數(shù)求出全部教師平均年齡:
SELECT AVG(age) FROM teacher;
執(zhí)行結(jié)果如下圖:
Tips:如上圖所示,
AVG(age)
表示對(duì)結(jié)果集 age 列取平均值 40.6667。
2.COUNT函數(shù)統(tǒng)計(jì)總條數(shù)
以 student 表為例,先查看所有 student 信息:
SELECT * FROM student;
查詢結(jié)果如下圖:
可以使用 COUNT()
函數(shù)統(tǒng)計(jì)全部學(xué)生數(shù)量:
SELECT COUNT(*) FROM student;
執(zhí)行結(jié)果如下圖:
也可以對(duì)某一列使用 COUNT()
函數(shù):
SELECT COUNT(id) FROM teacher;
執(zhí)行結(jié)果如下圖:
Tips:如上圖所示,
COUNT(*)
或者COUNT(id)
表示統(tǒng)計(jì)全部結(jié)果集條數(shù) 10,注意 COUNT() 函數(shù)也會(huì)對(duì) NULL 值的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。
3.SUM函數(shù)統(tǒng)計(jì)總和
以 teacher 表為例,獲取所有教師年齡總和:
SELECT SUM(age) FROM teacher;
執(zhí)行結(jié)果如下圖:
Tips:如上圖所示,
SUM(age)
表示對(duì)結(jié)果集age
列求總和488
。
4.小結(jié)
本小節(jié)介紹了如何使用 AVG、COUNT、SUM 三種聚合函數(shù)分別對(duì)結(jié)果集求平均值、統(tǒng)計(jì)總條數(shù)、求總和,需要注意的是 AVG、SUM 聚合函數(shù)會(huì)忽略值為 NULL 的數(shù)據(jù),而 COUNT 函數(shù)也會(huì)對(duì) NULL 值的數(shù)據(jù)條數(shù)加入到統(tǒng)計(jì)中。