聚合函数+group by

news/2024/11/26 6:43:30/

目录

    • 聚合函数
    • group by子句

聚合函数

常用的聚合函数有COUNT()、AVG()、SUM()、MAX()、MIN()。

  1. COUNT()函数:统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。

COUNT(*)计算表中总的行数,不管某列是否有数值或者为空值。
COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。

对于学生表来说:

  • 实例

COUNT:

统计班级共有多少个同学:

mysql> select count(*) from students;

统计同学QQ的个数(去重):

mysql> select count(distinct QQ) from students;
  1. AVG()函数:通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

统计学生平均总分:

select avg(chinese + math + english) 平均总分 from students;
  1. SUM()函数:是一个求总和的函数,返回指定列值的总和。

SUM:

统计同学数学成绩总分:

mysql> select sum(math) from students;

统计同学数学成绩总分中<60的部分(没有结果就返回NULL):

mysql> select sum(math) from students where math < 60;
  1. MAX()函数:返回指定列中的最大值,不仅适用于查找数值类型,也可应用于字符类型。

统计英语最高分:

mysql> select max(english) from students;
  1. MIN()函数:返回查询列中的最小值,不仅适用于查找数值类型,也可应用于字符类型。

统计英语最低分:

mysql> select min(english) from students;

group by子句

对于员工表来说:

  • EMP员工表
  • DEPT部门表
  • SALGRADE工资等级表

显示每个部门的平均工资和最高工资(以部分分组):

select deptno,avg(sal),max(sal) from EMP group by deptno;

显示每个部门的每种岗位的平均工资和最低工资(以部门和岗位分组):

select avg(sal),min(sal),job, deptno from EMP group by deptno, job;

显示平均工资低于2000的部门和它的平均工资:

首先要统计各部门的平均工资:

select avg(sal) from EMP group by deptno;

然后要取出其中<2000的部分:

select avg(sal) as myavg from EMP group by deptno having myavg<2000;

having其实类似于where,不同的是where是过滤表数据的,而having是过滤分组数据的。

对于查询语句来说,它们两个是可以同时存在的,先执行where过滤,再进行聚合,再进行分组,最后才是从分组里having过滤。


http://www.ppmy.cn/news/61157.html

相关文章

Solr(2):Solr的安装

1 安装前的概述 &#xff08;1&#xff09;solr是基于lucene而lucene是java写的&#xff0c;所以solr需要jdk----当前安装的solr-7.5需要jdk-1.8及以上版本&#xff0c;下载安装jdk并设置JAVA_HOME即可。 &#xff08;2&#xff09;下载solr&#xff0c;然后解压即可&#xf…

基于学生成绩管理系统(附源代码及数据库)

基于Ecplise&#xff0c;jsp的学生成绩管理系统 目录 登录页面 系统主页 管理员账号管理 学生查询 课程管理 成绩管理 后台数据库 源代码下载&#xff08;含数据库&#xff09; 毕设项目专栏 分为以下四大板块&#xff1a; 系统用户管理: 包含管理员账号管理&#…

编译方式汇总:Makefile\configure\autogen.sh\configure.ac、Makefile.am文件

一、前言 文章目的&#xff1a;针对各种开源项目&#xff0c;由于部分项目文档写的不够详细&#xff0c;&#xff08;或者是我太菜了&#xff09;&#xff0c;没有进行详细的介绍怎么编译该项目&#xff0c;导致花费过多时间在查找如何编译该项目上。因此该篇文章针对目前遇到的…

带你快速入门光模块行业

一、行业介绍 光纤通信&#xff08;简称光通信&#xff09;是利用光导纤维传输光波信号的一种通信方式&#xff0c;于上世纪六七十年代由华裔科学家高锟博士等人率先提出。 光通信是以激光作为信息载体&#xff0c;以光纤作为传输媒介的通信方式&#xff0c;现已取代电通信成…

SDN — EVPN Overlay 控制面

目录 文章目录 目录EVPN MP-BGPEVPN VxLANEVPN VxLAN 的路由类型Type2:MAC/IP Advertisement Route(MAC/IP 通告路由)VTEP 应用 Type2 通告 host-MAC 地址VTEP 应用 Type2 通告 host-IP 精确路由VTEP 应用 Type2 实现 ARP 广播抑制VTEP 应用 Type2 实现虚拟机迁移Type3:Inc…

Vue3 的生命周期

在 Vue3 中&#xff0c;生命周期钩子函数有所改变。以下是 Vue3 中的生命周期钩子函数及其作用&#xff1a; beforeCreate&#xff1a;在实例被创建之前执行&#xff0c;此时 data、methods、computed 和 watch 等属性都还未初始化。 created&#xff1a;在实例创建完成后执行…

「Codeforces」C. Differential Sorting

C. Differential Sorting https://codeforces.com/contest/1635/problem/C 题目描述 你有一个大小为 n n n 数组&#xff0c;可以选择 3 个索引 x , y , z x,y,z x,y,z &#xff08; 1 ≤ x < y < z ≤ n 1\leq x \lt y \lt z \leq n 1≤x<y<z≤n&#xff09;&a…

【关于C++中----异常】

文章目录 一、C语言中处理错误的方式二、C异常概念三、异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3 异常安全3.4 异常规范 四、自定义异常体系五、C标准库的异常体系六、异常的优缺点 一、C语言中处理错误的方式 C语言中常见的错误类型包括&#xff1a;语法错误、逻…