Oracle-分组统计查询

举报
小奇JAVA 发表于 2022/06/28 00:37:01 2022/06/28
【摘要】 工欲善其事必先利其器 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 ...

工欲善其事必先利其器
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

在这里插入图片描述


一、分组函数

求和:sum()
平均值:avg()
最小值:min()
最大值:max()

1、查询学生的平均年龄

select avg(age) from student;

  
 
  • 1

2、查询学生中年龄的最大值

select max(age) from student;

  
 
  • 1

3、查询学生中年龄的最大值和最小值

select max(age),min(age) from student;

  
 
  • 1

4、查询学生的年龄总和

select sum(age) from student;

  
 
  • 1

二、COUNT()函数

count()函数有三种写法,分别如下
count(*):可以准确地返回表中的全部记录数。
count(字段):统计不为null的所有数据量。
count(distinct 字段):去重后数据的数据量。

1、查询学生表中的数据量

select count(*) from student;

  
 
  • 1

2、查询学生表中姓名不为null的数据量

select count(name) from student;

  
 
  • 1

3、查询学生表中姓名不重复的数据量

select count(distinct name) from student;

  
 
  • 1

三、分组统计

group by:分组统计函数

1、查询学生表中每个班级学生年龄的平均数,按照班级进行分组

select avg(age) from student group by class;

  
 
  • 1

2、查询学生表中每个地区学生年龄的平均数,按照地区进行分组

select avg(age) from student group by add;

  
 
  • 1

注意:如果查询的时候不使用group by语句,那么select子句中只允许出现统计函数,其它字段不允许出现。例如查询所有的学生数量,并且查询出学生的姓名这个是不允许的。
错误sql:select name,count() from student;
正确sel:select count(
) from student;

注意:如果使用group by语句,那么select子句中只允许出现group by语句的字段,其它的字段不允许出现。例如根据班级查询学生的总数,和所有的学生姓名是不允许的。
错误sql:select name,class,count() from student group by class;
正确sql:select class,count(
) from student group by class;

四、多表查询与分组统计

分组统计是可以和多表查询一起使用的。

1、查询学生表id和老师表sid相同的学生姓名,并统计数量按照学生姓名分组

select s.name,count(*) from student s,teacher t where s.id = t.sid group by s.name;

  
 
  • 1

五、HAVING子句

having是在group by语句之后执行的,所以进行group by分组后可以再根据having子句进行过滤

1、查询学生表中的学生班级和平均年龄,并根据班级分组,然后将平均年龄大于10的班级与成绩查出

select class,avg(age) from student group by class having avg(age) > 10;

  
 
  • 1

六、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

文章来源: xiaoqijava.blog.csdn.net,作者:旷世奇才李先生,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaoqijava.blog.csdn.net/article/details/125477080

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。