MySQL自学笔记_聚集函数
2024-09-06 18:01:22
1. 使用场景
很多时候我们需要查找数据库中符合特定条件的数据的计数、最大值、最小值、平均值等一个数字,并需要要导出所有相关数据明细。此时就需要用到聚集函数。
而返回所有数据明细会占用数据库资源和网络带宽资源。
聚集函数定义(aggregate function):运行在行组上,返回一个单一的值的函数。既,此类函数的运行对象都是行组数据,且只返回一个运算结果。
一个select语句中可以有多个聚集函数。
2. 常用聚集函数:
函数 | 说明 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列的和 |
2. 1 avg() 通过计算某列的行数及所有行的值得和求得该列的平均值。
计算考试成绩的均值:
select avg(score) as avg_score
from test;
从test表中找到score这一列,计算并返回其平均值。
求出英语成绩的平均值:
select avg(score) as avg_score
from test
where major = 'English';
avg()函数后面可以通过where字句,只求出某列符合特定条件的行的平均值。
注意:
1. 单个avg()函数只能计算一列,想计算多列的平均值,只能使用多个avg()函数
2. avg()函数自己忽略值为null的行。
2.2 count() 计算整个表或某列的行数
count() 的两个使用方法:
1. count(*),计算某个表中的行数,不管是否有null值。
2. count(column), 根据某列有值的行计算行数。
#计算学生总数
select count(*) as num_students
from students;
# 有业余爱好的学生数
select count(hobby) as num_hobby
from students;
2.3 max() 返回某列最大值
常规可以用来检索的数据类型为数值和日期。如果文本数据按特定顺序排序,会返回最后一列。
# 找出考试中最高的数学成绩
select max(math) as max_math
from test;
2.4 min() 返回某列最小值
类似max()函数,常规可以用来检索的数据类型为数值和日期。如果文本数据按特定顺序排序,会返回最前一列。
# 找出百米冠军的用时
select min(100m_running) as min_time
from PE_testing;
2.5 sum() 返回某列之和
可以返回某列数值之和,也可返回某列特定条件的数值之和,还可返回结算列的和值。
# 全校捐款数
select sum(amount) as total_amount
from donation;
# 一年级总捐款数
select sum(amount) as total_amount_grade1
from donation
where grade = 1;
# 计算全校每周学生读书总计小时数
select sum(days*hours) as total_hour
from reading;
最新文章
- SqlServer用sql对表名、字段做修改
- Oracle 取随机数
- 宁波uber优歩司机注册教程 UBER宁波司机注册指南!
- getTickCount()函数 VS GetTickCount()函数
- 【转】 golang slice array
- 执行umount 命令的时候出现 device is busy
- SharePoint 2010 的企业级搜索技术文章
- 谈谈JSON数据格式
- [TypeScript] Understanding Decorators
- SQL 优化,全
- JS 深拷贝
- Linux下安装jekyll
- USACO Section 1.4 Arithmetic Progressions 解题报告
- Vue基本使用
- 基于 docker 的redis 主从+哨兵(快速部署)
- SpringBoot之处理JSON数据举例
- Centos7搭建dhcp服务器
- 关于海康威视与Unity3d集成冲突问题解决
- 微信小程序开发笔记03
- Linux内核修炼之framebuffer分析