MySQL_合计/统计函数

统计函数 --Count返回行的总数

sql 复制代码
#演示Mysql统计函数的使用
#统计一个班级中有多少个学生
SELECT COUNT(*) FROM student;

#统计数学成绩 > 90的学生有多少个
SELECT COUNT(*) FROM student WHERE math > 90;

#统计总分大于250的人数有多少
SELECT COUNT(*) FROM student WHERE (math + chinese + english) > 250;

count(*)和count(列)的区别:

count(*)返回满足条件的记录的总行数,count(列)统计满足条件的某列有多少个,但是会排除为null的情况

sql 复制代码
CREATE TABLE t15(`name` VARCHAR(20));
INSERT INTO t15 VALUES('tom');
INSERT INTO t15 VALUES('jack');
INSERT INTO t15 VALUES('mary');
INSERT INTO t15 VALUES(NULL);

SELECT COUNT(*) FROM t15	-- 4
SELECT COUNT(NAME) FROM t15	-- 3 排除了null的情况

合计函数 --Sum返回满足where条件的行的和,一般使用在数值列

sql 复制代码
#演示sum函数的使用
#统计一个班数学总成绩
SELECT SUM(math) FROM student;

#统计一个班语文,英语,数学各科的总成绩
SELECT SUM(chinese),SUM(math),SUM(english) FROM student;

#统计一个班级语文,英语,数学的成绩总和
SELECT SUM(chinese + math + english) FROM student;

#统计一个班级语文成绩平均分
SELECT SUM(chinese) / COUNT(*) FROM student;

注意:sum仅对数值起作用,其他类型无意义 ; 对多列求和需要加上" , "号

合计函数 --avg

sql 复制代码
#演示avg的使用
#求一个班级数学平均分
SELECT AVG(math) FROM student;
#求一个班级总分平均分
SELECT AVG(math + chinese + english) FROM student;

合计函数 --Max/min返回满足where条件的一列最大/最小值

sql 复制代码
#演示max和min的使用
#求班级最高分和最低分
SELECT MAX(math + english + chinese),MIN(math + english + chinese) FROM student;
相关推荐
运维行者_3 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
国强_dev4 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
@insist1234 小时前
系统规划与管理师-信息系统规划核心工作要点解析
数据库·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
超级数据查看器4 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天5 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
南墙上的石头6 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
画中有画6 小时前
论向量数据库在项目中的应用
数据库
spider_xcxc7 小时前
Redis 数据库高质量实践指南(一)
运维·数据库·redis·oracle·云计算
l1t8 小时前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
执子手 吹散苍茫茫烟波8 小时前
RC 隔离级别下 MySQL InnoDB 死锁典型案例
数据库·mysql