码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Oracle-分组统计查询


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

    在这里插入图片描述

    文章目录

    • 一、分组函数
      • 1、查询学生的平均年龄
      • 2、查询学生中年龄的最大值
      • 3、查询学生中年龄的最大值和最小值
      • 4、查询学生的年龄总和
    • 二、COUNT()函数
      • 1、查询学生表中的数据量
      • 2、查询学生表中姓名不为null的数据量
      • 3、查询学生表中姓名不重复的数据量
    • 三、分组统计
      • 1、查询学生表中每个班级学生年龄的平均数,按照班级进行分组
      • 2、查询学生表中每个地区学生年龄的平均数,按照地区进行分组
    • 四、多表查询与分组统计
      • 1、查询学生表id和老师表sid相同的学生姓名,并统计数量按照学生姓名分组
    • 五、HAVING子句
      • 1、查询学生表中的学生班级和平均年龄,并根据班级分组,然后将平均年龄大于10的班级与成绩查出
    • 六、总结


    一、分组函数

    求和: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面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

  • 相关阅读:
    HTTPS协议详解:基本概念与工作原理
    什么是 SSH 密钥? 生成、身份验证、密钥对信息等
    图解算法数据结构-LeetBook-栈和队列04_望远镜中最高的海拔_滑动窗口
    STM32-HAL库06-硬件IIC驱动FM24CL16B非易失存储器
    前后端分离项目(十一):实现"删"功能(前后端)
    JavaCV的摄像头实战之七:推流(带声音)
    基于鲸鱼算法的无人机航迹规划-附代码
    本地部署企业邮箱,让企业办公更安全高效
    高级IO---多路转接模型的实现:select模型、poll模型、epoll模型
    springboot基于java的校园二手书籍交易平台毕业设计源码131558
  • 原文地址:https://blog.csdn.net/weixin_44096133/article/details/125477080
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号