一、合计/统计函数
count
Count返回行的总数
SELECT COUNT(*) 列名 FROM table_name
WHERE where_definition
# 演示 mysql 的统计函数的使用
-- 统计一个班级共有多少学生?
SELECT COUNT(*) FROM student
-- 统计数学成绩大于90的学生有多少个
SELECT COUNT(*) FROM student
WHERE math > 90
-- 统计总分大于250的人数有多少个
SELECT COUNT(*) FROM student
WHERE (chinese + english + math) > 250
-- COUNT(*) 和 COUNT(列) 的区别
-- COUNT(*) 返回满足条件的记录的总行数
-- COUNT(列) 统计满足条件的某列有多少个,但是会排除为空的情况
CREATE TABLE t13(
`name` VARCHAR(20)
);
INSERT INTO t13 VALUES('tom')
INSERT INTO t13 VALUES('jack')
INSERT INTO t13 VALUES('mary')
INSERT INTO t13 VALUES(NULL)
SELECT * FROM t13
SELECT COUNT(*) FROM t13 -- 4
SELECT COUNT(`name`) FROM t13 -- 3
sum
Sum函数返回满足where条件的行的和,一般使用在数值列
SELECT SUM(列名) {sum(列名)...} FROM table_name
WHERE where_definition
-- 演示 sum 函数的使用
-- 统计一个班级数学总成绩
SELECT SUM(math) FROM student;
-- 统计一个班级数学、英语、语文各科的总成绩
SELECT SUM(math), SUM(english), SUM(chinese) FROM student;
-- 统计一个班级数学、英语、语文的成绩总合
SELECT SUM(math + english + chinese) FROM student;
-- 统计一个班级语文成绩平均分
SELECT SUM(chinese) / COUNT(*) FROM student;
avg
AVG函数返回满足where条件的一列的平均值
SELECT AVG(列名) FROM table_name
WHERE where_definition
-- 演示avg的使用
-- 求一个班级数学平均分
SELECT AVG(math) FROM student;
-- 求一个班级总分平均分
SELECT AVG(math + english + chinese) FROM student;
max/min
Max/Min函数返回满足where条件的一列的最大/最小值
SELECT MAX(列名) FROM table_name
WHERE where_definition
-- 演示max/min的使用
-- 求班级最高分和最低分(数值范围在统计中特别有用)
SELECT MAX(math + english + chinese), MIN(math + english + chinese) FRO