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;

最新文章

  1. SqlServer用sql对表名、字段做修改
  2. Oracle 取随机数
  3. 宁波uber优歩司机注册教程 UBER宁波司机注册指南!
  4. getTickCount()函数 VS GetTickCount()函数
  5. 【转】 golang slice array
  6. 执行umount 命令的时候出现 device is busy
  7. SharePoint 2010 的企业级搜索技术文章
  8. 谈谈JSON数据格式
  9. [TypeScript] Understanding Decorators
  10. SQL 优化,全
  11. JS 深拷贝
  12. Linux下安装jekyll
  13. USACO Section 1.4 Arithmetic Progressions 解题报告
  14. Vue基本使用
  15. 基于 docker 的redis 主从+哨兵(快速部署)
  16. SpringBoot之处理JSON数据举例
  17. Centos7搭建dhcp服务器
  18. 关于海康威视与Unity3d集成冲突问题解决
  19. 微信小程序开发笔记03
  20. Linux内核修炼之framebuffer分析

热门文章

  1. NET高性能IO
  2. Net Core IIS Express In
  3. STM32之ADC(内部基准电压,参考电压)
  4. Zeppelin的入门使用系列之使用Zeppelin来创建临时表UserTable(三)
  5. RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置
  6. Centos7.2内网环境安装MySQL5.7.24
  7. 开源项目android-uitableview介绍
  8. zTree的重点
  9. 洛谷 P1137 旅行计划
  10. ABAP数据类型