【数据库】聚合函数

系列文章目录

🌈座右铭🌈:人的一生这么长、你凭什么用短短的几年去衡量自己的一生!

💕个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C++,自顶向下看Java-CSDN博客

❤️相关文章❤️:清灵白羽 漾情天殇-CSDN博客


文章目录

前言

二、SUM()函数

三、AVG()函数

四、MAX()函数

五、MIN()函数

六、Group By字句

总结


前言

聚合函数
函数声明
COUNT([DISTINCT] expr)
返回查询到的数据的 数量
SUM([DISTINCT] expr)
返回查询到的数据的 总和,不是数字无意义
AVG([DISTINCT] expr)
返回查询到的数据的 平均值,不是数字无意义
MAX([DISTINCT] expr)
返回查询到的数据的 最大值,不是数字无意义
MIN([DISTINCT] expr)
返回查询到的数据的 最小值,不是数字无意义

一、COUNT()函数

        在进行函数讲解之前为了方便操作,我们需要先建立一张表单,如图所示:

        这里的class_id我与另外一张表建立了外键关系,大家可以先不用关注哈,如果有对于外键也就是数据库约束方面的知识有不了解的地方,请先浏览我之前的文章。我们继续。

        我们可以统计一下这个班级有多少同学:

select count(*) from student;

        统计一下,数学成绩有多少个:

        这就是计算一下查询到数据的总量的函数,用法简单明了。


二、SUM()函数

        顾名思义,这个函数是用来统计数据值的总和的,比如我们可以查询一下全班数学的总成绩:

select sum(math) from student;

        我们也可以和条件查询进行绑定,例如查询一下数学不及格同学的总成绩:

select sum(math) from student where sum math < 60;

        我的这张表当中并没有数学不及格的同学,所以结果显示为空,大家可以自行插入数据。

        不过我在这里要强调一下函数名和后面的括号之间是不可以有空格的,而且括号里面必须是数字才有意义。


三、AVG()函数

        对于班级成绩求总分往往是没有意义的,我们通常要求平均成绩,这个时候就需要用到AVG函数,我们可以求一求一个班级当中的数学平均成绩:

select avg(math) from student;

        我们来求一下总分的平均成绩:

select avg(math + english + chinese) from student;


四、MAX()函数

        返回英语成绩的最高分:

select max(english) from student;

五、MIN()函数

        返回数学成绩的最低分:

select min(math) from student;

        我们加入条件查询,查询60分以上的数学成绩的最低分:

select min(math) from student where math > 60;


六、Group By字句

        这里为大家补充一个非常重要的知识点,Group By字句也就是分组查询,在这之前我们需要建立一张表单,如图所示:

        之后我们插入数据:

insert into staff(name,role,salary) values
    ->  ('马云','服务员', 1000.20),
    -> ('马化腾','游戏陪玩', 2000.99),
    ->  ('孙悟空','游戏角色', 999.11),
    -> ('猪无能','游戏角色', 333.5),
    ->  ('沙和尚','游戏角色', 700.33),
    ->  ('隔壁老王','董事长', 12000.66);

        代码就给大家附在这里了,又需要的话可以自行粘贴哈。

        建立好表单之后,我们来查询一下每个角色的最高工资、最低工资和平均工资:

        这个时候查询好的数据就会按照任务角色来进行分组。

        当然我们也可以按照姓名来进行分组,如图所示:

        在SQL中,使用GROUP BY子句进行分组查询时,需要满足SELECT指定的字段必须是“分组依据字段”的原因是因为GROUP BY子句将结果集按照指定的字段值进行分组,而非分组依据字段的其他字段可能具有多个不同的取值。如果这些字段不包含在聚合函数中,那么数据库系统将无法确定在每个分组中应该选择哪个具体的值进行显示。

        举个例子,group by后面的就属于分组依据字段,没有在group by之后的全是非分组依据字段,为什么一定要这样呢?如下图所示:

        请大家看这张表单,非分组依据字段出现在了查询字段之后也没有依靠聚合函数,就会导致一个现象,这里的人名是随机出现的,游戏陪玩不只有马化腾一个,但是这里只显示了他一个,所以这样的数据是没有意义的,这一点需要大家注意。


总结

        聚合函数的主要内容就为大家介绍完了,希望大家能够从我的文章当中有所收获,建议您收藏起来,如果知识有遗忘的话可以反复观看,数据库的很多知识不需要我们背诵,需要用到的话,只需要翻阅之前的文档会议一下即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/482274.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机Ubuntu无法识别U盘

1. 现象 虚拟机插入U盘后&#xff0c;无反应。系统中也找不到U盘。 2. 原因 VMware USB Arbitration Service服务别关闭了&#xff0c;任务管理器中找不到该任务。 服务中也没有运行&#xff08;services.msc&#xff09; 3. 解决 打开服务设置窗口&#xff08;services.…

温湿度项目设计V1.0——PCB布线及打板

PCB布线 画好原理图之后&#xff0c;通过工具——标注所有器件&#xff0c;当前原理图上的器件编号会被自动标注号。点击设置——Update PCB Document文件名&#xff0c;弹出的界面先点击生效变更&#xff0c;然后点击执行变更。界面会跳转到PCB界面。如果生效变更有问题&…

城管智慧执法系统源码,基于微服务+java+springboot+vue开发

城管智慧执法系统源码&#xff0c;基于微服务javaspringbootvue开发 城管智慧执法系统源码有演示&#xff0c;自主研发&#xff0c;功能完善&#xff0c;正版授权&#xff0c;可商用上项目。 一套数字化的城管综合执法办案系统源码&#xff0c;提供了案件在线办理、当事人信用…

开学考核复现

不要尝试爆破哟!(misc) 下载图片&#xff0c;解析图片 拿到密码&#xff0c;解压压缩包&#xff0c;生成图片 扫描二维码 留个后门(misc) D盾扫描 打开文件寻找 师姐的旅游照片(misc) 随波逐流&#xff0c;然后base64解码 修改后缀为zip&#xff0c;解压 修改高度 Fuck! (C…

「媒体宣传」企业活动发布会邀请媒体报道的好处与优势?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业活动发布会邀请媒体报道具有多种好处与优势&#xff0c;这些都有助于提升企业的知名度、形象和影响力。以下是一些主要的好处与优势&#xff1a; 提升品牌知名度&#xff1a;媒体报道…

MATLAB环境下基于离散小波变换和主成分平均的医学图像融合方法

随着计算机技术和生物影像工程的日趋成熟&#xff0c;医学图像为医疗诊断提供的信息越来越丰富。目前&#xff0c;由于医学成像的设备种类繁多&#xff0c;导致医生获得的图像信息差异较大。如何把这些信息进行整合供医生使用成为当务之急。基于此&#xff0c;医学图像融合技术…

Windows下安装QT,遇到下载组件中没有指定版本(提供解决方式) + 5.15详细安装步骤版

Windows下安装QT 5.15详细安装问题详解 前情提要一、QT 5.15及之后版本的下载问题二、QT 5.15及之后版本的下载方式&#xff1a;下载QT(在线安装版本)三、详细安装步骤遇到<下载组件>中没有指定版本的解决方式 前情提要 嵌入式设备搭载的QT版本是5.15&#xff0c;所以PC…

【C语言】预处理编译链接调试技巧详解

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;C语言_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.预处理 1.1 预定义符号 1.2 #define 1.2.1 #define 定义标识符 1.2.2 #define 定义宏 1.2.3 #define 替换规则 1.2.4 #和## …

23. UE5 RPG制作属性面板(一)

随着角色的属性越来越多&#xff0c;我们不能每次都进行showdebug abilitysystem进行查看&#xff0c;而且玩家也需要查看角色属性&#xff0c;所以需要一个查看玩家角色属性的面板。 在前面&#xff0c;我们创建三种类型的属性 Primary Attributes&#xff08;主要属性&#…

prettier + eslint 配置

vue-cli 新建项目选择 ESLint Prettier 会自动下载相关包 settings.json {"editor.formatOnSave": true, // 开启保存文件自动格式化代码"editor.defaultFormatter": "esbenp.prettier-vscode", // 默认的代码格式化工具// "prettier.r…

11 Games101 - 笔记 - 几何(曲线与曲面)

11 几何&#xff08;曲线与曲面&#xff09; 贝塞尔曲线 定义 贝塞尔曲线&#xff1a;由控制点和线段组成的曲线&#xff0c;控制点是可拖动的支点。 如图&#xff0c;蓝色为贝塞尔曲线&#xff0c;p1, p2, p3为控制点&#xff0c;曲线和初始与终止端点相切&#xff0c;并且…

数字乡村引领新风尚:科技赋能农村实现全面进步

随着信息技术的迅猛发展&#xff0c;数字乡村正成为引领农村全面进步的新风尚。科技作为推动农村发展的强大引擎&#xff0c;正在深刻改变着传统农业的生产方式、农村的社会结构以及农民的生活方式&#xff0c;为农村经济社会的全面进步注入了新的活力和动力。本文将从数字乡村…

【深度学习】四种天气分类 模版函数 从0到1手敲版本

引入该引入的库 import torch import torch.nn as nn import matplotlib.pyplot as plt import torch.nn.functional as F import torchvision import torch.optim as optim %matplotlib inline import os import shutil import glob os.environ["KMP_DUPLICATE_LIB_OK&q…

双指针算法:三数之和

文章目录 一、[题目链接&#xff1a;三数之和](https://leetcode.cn/problems/3sum/submissions/515727749/)二、思路讲解三、代码演示 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的支持就是我坚持…

马蹄集oj赛(双周赛第二十三次)

目录 数列分割 小码哥的地毯 小码哥的三色墙 palace 高数考试 新全排列 黑白双煞 等差 数三角形 区间修改 相对马高 小码哥剪绳子 数列分割 难度:黄金 时间限制:1秒巴 占用内存:64 M 小码哥给你一个长度为n的数列&#xff0c;求将该数列分割成两个左右两个部分且两…

大模型学习笔记七:LLM应用

文章目录 一、维护生产级别的LLM应用,需要做的事二、符合需求的LLM App维护平台三、LangFuse1)替换OpenAI客户端(把跟OpenAI交互记录到LangFuse)1.1)几个基本概念2)通过LangChain的回调函数触发记录(上面用的原生OpenAI接口,下面是调用LangChain的接口)3)构建一个实际…

打开snipaste软件的界面后,上次的截图无法销毁?

现象&#xff1a; 鼠标放上去&#xff0c;如图会有1个圆圈&#xff0c;无法消除一直显示在电脑桌面上&#xff0c;无法使图片消失 解决办法&#xff1a; 你应该是点到了空格&#xff0c;开启了编辑模式&#xff0c;然后又选中了其中一个功能例如橡皮檫导致无法移动和销毁&…

Linux线程补充1

十、多线程中线程间的"独立" ​ 1.线程在代码段通过执行不同的函数&#xff0c;实现代码段的独立&#xff1b; ​ 2.新线程通过在共享区划分不同的管理属性和不同的栈空间&#xff0c;实现栈的独立&#xff0c;而主线程使用的是栈空间&#xff1b; ​ 3.线程通过获…

计算机二级大题

题目来源&#xff1a;计算机二级Python半个月抱佛脚大法&#xff08;内呈上真题版&#xff09; - 知乎 1.大题1 注意csv文件读取的处理 ls[] for line in f: ls.append(line.strip(\n).split(,)) 2. 大题2 第一问&#xff1a; #计算有效票张数 fopen("vote.txt",…

微服务鉴权的几种实现方案

1.Token 1.1 Token透传&#xff08;不推荐&#xff09; 刚开始接触微服务时网上给的方案大都数是通过透传Token做鉴权&#xff0c;但我认为这种方式不是很妥当。接着往下看&#xff1a; 这种方式通过透传Token使得各微服务都能获取到当前登录人信息&#xff0c;在代码编写上确…