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

  • 相关阅读:
    【安装记录】打包内核时候,kernel-package安装不上,无法使用make kpkg指令
    Allegro上如何让飞线以方框形式显示
    无线社工基础
    security登录实战
    Linux驱动开发(十五)---如何使用内核现有驱动(显示屏)
    Matlab如何选择读取dat格式数据?
    JAVA-编程基础-11-04-java IO 字符流
    企业如何做好供应链管理工作?8个步骤及应用详解!
    【广州华锐互动】人体血管器官3D动态展示为医学生提供哪些便利?
    信安软考——第六章 认证技术原理和应用 笔记记录
  • 原文地址:https://blog.csdn.net/weixin_44096133/article/details/125477080
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号