当前位置: 首页 > news >正文

MySQL查询之聚合函数查询

0. 数据源

student.sql文件。

/*Navicat Premium Data TransferSource Server         : localhost_3306Source Server Type    : MySQLSource Server Version : 80016Source Host           : localhost:3306Source Schema         : testdbTarget Server Type    : MySQLTarget Server Version : 80016File Encoding         : 65001Date: 02/05/2023 20:52:22
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (`num` int(11) NOT NULL COMMENT '学号',`name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'zhang' COMMENT '姓名',`score` float NULL DEFAULT NULL,PRIMARY KEY (`num`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 109 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (101, 'zhang', 98);
INSERT INTO `student` VALUES (102, 'han', 69);
INSERT INTO `student` VALUES (103, 'hui', 72);
INSERT INTO `student` VALUES (104, 'fang', 100);
INSERT INTO `student` VALUES (105, 'li', 88);
INSERT INTO `student` VALUES (106, 'cheng', NULL);SET FOREIGN_KEY_CHECKS = 1;
mysql> select * from student;
+-----+-------+-------+
| num | name  | score |
+-----+-------+-------+
| 101 | zhang |    98 |
| 102 | han   |    69 |
| 103 | hui   |    72 |
| 104 | fang  |   100 |
| 105 | li    |    88 |
| 106 | cheng |  NULL |
+-----+-------+-------+
6 rows in set (0.00 sec)

1. 作用

MySQL提供一些查询功能,可以对获取的数据进行分析和报告。这些函数的功能有:计算数据表中记录行数的总数、计算某个字段列下的数据的总和,以及计算表中某个字段下的最大值、最小值或者平均值。
或者可以这么理解:它主要是将一列数据作为一个整体,然后进行纵向计算

函数作用
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列的和

1.1 COUNT()

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

mysql> select * from student;
+-----+-------+-------+
| num | name  | score |
+-----+-------+-------+
| 101 | zhang |    98 |
| 102 | han   |    69 |
| 103 | hui   |    72 |
| 104 | fang  |   100 |
| 105 | li    |    88 |
| 106 | cheng |  NULL |
+-----+-------+-------+
6 rows in set (0.00 sec)mysql> select COUNT(*) from student;
+----------+
| COUNT(*) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)mysql> select COUNT(name) from student;
+-------------+
| COUNT(name) |
+-------------+
|           6 |
+-------------+
1 row in set (0.00 sec)mysql> select COUNT(score) from student;
+--------------+
| COUNT(score) |
+--------------+
|            5 |
+--------------+
1 row in set (0.00 sec)

根据以上测试结果可以看出:COUNT(*)是计算表中的所有的行数,不管某列有数值或者为空值。
COUNT(字段名)则是计算指定列下的总的行数,计算时将会忽略空值的行


1.2 SUM()

返回指定列的值的总和。
同样,SUM()函数在计算时,忽略列值为NULL的行。

mysql> select * from student;
+-----+-------+-------+
| num | name  | score |
+-----+-------+-------+
| 101 | zhang |    98 |
| 102 | han   |    69 |
| 103 | hui   |    72 |
| 104 | fang  |   100 |
| 105 | li    |    88 |
| 106 | cheng |  NULL |
+-----+-------+-------+
6 rows in set (0.00 sec)mysql> select SUM(score) AS total from student;
+-------+
| total |
+-------+
|   427 |
+-------+
1 row in set (0.37 sec)

# demo
# 统计处num>=103 && num<=106的所有学生的成绩之和;
# 分析, 首先获取满足条件的所有学生集合:select * from student where num between 103 and 106;
# 接着, 再对返回的列当中的score字段进行聚合查询, 即 select SUM(score) from student where num between 103 and 106;
# 这样, 便求出满足条件的所有学生的成绩之和了。
mysql> select * from student where num  between 103 and 106;
+-----+-------+-------+
| num | name  | score |
+-----+-------+-------+
| 103 | hui   |    72 |
| 104 | fang  |   100 |
| 105 | li    |    88 |
| 106 | cheng |  NULL |
+-----+-------+-------+
4 rows in set (0.00 sec)mysql> select SUM(score) from student where num between 103 and 106;
+------------+
| SUM(score) |
+------------+
|        260 |
+------------+
1 row in set (0.00 sec)

1.3 AVG()
返回指定列的值的总和的平均值。
同样,SUM()函数在计算时,忽略列值为NULL的行。

mysql> select AVG(score) AS average from student;
+---------+
| average |
+---------+
|    85.4 |
+---------+
1 row in set (0.00 sec)

如上所示,根据测试结果(总和/个数),其中的个数为5个,AVG()会启动忽略列值为NULL的行。


1.4 MAX()
返回指定列中的最大值。
同样,MAX()函数在计算时,忽略列值为NULL的行。

mysql> select MAX(score) AS maximum from student;
+---------+
| maximum |
+---------+
|     100 |
+---------+
1 row in set (0.04 sec)

1.5 MIN()
返回指定列中的最小值。
同样,MIN()函数在计算时,忽略列值为NULL的行。

mysql> select MIN(score) AS minimum from student;
+---------+
| minimum |
+---------+
|      69 |
+---------+
1 row in set (0.00 sec)

相关文章:

MySQL查询之聚合函数查询

0. 数据源 student.sql文件。 /*Navicat Premium Data TransferSource Server : localhost_3306Source Server Type : MySQLSource Server Version : 80016Source Host : localhost:3306Source Schema : testdbTarget Server Type : MySQLTa…...

普通2本,去过字节外包,到现在年薪25W+的测试开发,我的2年转行心酸经历...

个人简介 我是一个普通二本大学机械专业毕业&#xff0c;17年毕业&#xff0c;19年转行&#xff0c;目前做IT行业的软件测试已经有3年多&#xff0c;职位是高级测试工程师&#xff0c;坐标上海… 我想现在我也有一点资格谈论关于转行这个话题&#xff1b;希望你在决定转行之前…...

util.callbackify

util.callbackify(original) 将 async 异步函数&#xff08;或者一个返回值为 Promise 的函数&#xff09;转换成遵循异常优先的回调风格的函数&#xff0c;例如将 (err, value) > ... 回调作为最后一个参数。 在回调函数中&#xff0c;第一个参数为拒绝的原因&#xff08;如…...

解决使用CLIP模型时TypeError: Cannot handle this data type: (1, 1, 224, 224), |u1

想提供Huggingface的transformer库实现多模态模型CLIP的推断&#xff0c;结果报错 (myenv) rootd27d1ff1836c:/home/model_test# python3 CLIP.py ftfy or spacy is not installed using BERT BasicTokenizer instead of ftfy. Traceback (most recent call last): File “/hom…...

Mysql第二章 多表查询的操作

这里写自定义目录标题 一 外连接与内连接的概念sql99语法实现 默认是内连接sql99语法实现左外连接&#xff0c;把没有部门的员工也查出来sql99语法实现右外连接&#xff0c;把没有人的部门查出来sql99语法实现满外连接&#xff0c;mysql不支持这样写mysql中如果要实现满外连接的…...

ESP32-CAM:TinyML 图像分类——水果与蔬菜

目录 故事 硬件参数: 在 Arduino IDE 上安装 ESP32-Cam 使用 BLINK 测试电路板 测试无线网络 运行您的 Web 服务器 水果与蔬菜-图像分类 下载数据集 使用 Edge Impulse Studio 训练模型...

如何防止订单重复支付

想必大家对在线支付都不陌生&#xff0c;今天和大家聊聊如何防止订单重复支付。 看看订单支付流程 我们来看看&#xff0c;电商订单支付的简要流程&#xff1a; 订单钱包支付流程 从下单/计算开始&#xff1a; 下单/结算&#xff1a;这一步虽然不是直接的支付起点&#xff0c;但…...

不是那么快乐的五一

大家好&#xff0c;我是记得诚。 五一假期结束了&#xff0c;明天开始上班了。 这个假期没休息好&#xff0c;也没出去玩。 放假前一天&#xff0c;接到通知让加班。 第一天就去公司加班了&#xff0c;属实很难受&#xff0c;我心想如果别人有了出远门的安排&#xff0c;还…...

Maven命令和配置详解

Maven命令和配置详解 1. pom基本结构2. build基本结构3. Maven命令详解3.1 打包命令3.2 常用命令3.3 批量修改版本-父子pom4. Maven配置详解4.1 settings.xml4.2 项目内的maven工程结构Maven POM构建生命周期工程实践1. pom基本结构 <?xml versi...

P3029 [USACO11NOV]Cow Lineup S 双指针 单调队列

“五一”小长假来了趟上海&#xff0c;在倒数第二天终于有时间做了一会儿题目&#xff0c;A了之后过来写一篇题解 【问题描述】 农民约翰雇一个专业摄影师给他的部分牛拍照。由于约翰的牛有好多品种&#xff0c;他喜欢他的照片包含每个品种的至少一头牛。 约翰的牛都站在一条沿…...

数据结构与算法之链表: Leetcode 83. 删除排序链表中的重复元素 (Typescript版)

删除排序链表中的重复元素 https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ 描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 示例 1 输入&#xff1a;head [1,1,2] 输出&…...

ubuntu16.04升级到20.04后报错 By not providing “FindEigen.cmake“

编译问题&#xff1a; CMake Error at modules/perception/lidar/CMakeLists.txt:14 (find_package): By not providing "FindEigen.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Eigen&…...

设计模式——模板方法模式

是什么&#xff1f; 在我们的实际开发中尝尝会遇到这种问题&#xff1a;在设计一个系统时知道了算法所需要的关键步骤&#xff0c;而且确定了这些步骤的执行顺序&#xff0c;但是某些步骤的具体实现还不知道&#xff0c;或者说某些步骤的实现与具体的环境相关&#xff0c;例如每…...

15 | Qt的自定义信号

1 前提 Qt 5.14.2 2 具体操作 2.1 自定义信号 2.1.1 UI界面设置 2.1.1.1 widget.ui 2.1.1.2 setdialog.ui 2.1.2 headers 2.1.2.1 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui {class Widget; } QT_END_NAMESP…...

线性表,顺序表,链表

线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线 …...

洛谷 P2782 友好城市 线性DP 最长上升子序列 二分查找 lower_bound

&#x1f351; 算法题解专栏 &#x1f351; 洛谷&#xff1a;友好城市 题目描述 有一条横贯东西的大河&#xff0c;河有笔直的南北两岸&#xff0c;岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸&#xff0c;而且不同城市的友好城市不相同。每对…...

easyexcel读取excel合并单元格数据

普通的excel列表&#xff0c;easyexcel读取是没有什么问题的。但是&#xff0c;如果有合并单元格&#xff0c;那么它读取的时候&#xff0c;能获取数据&#xff0c;但是数据是不完整的。如下所示的单元格数据&#xff1a; 我们通过简单的异步读取&#xff0c;最后查看数据内容&…...

2023哪款蓝牙耳机性价比高?200左右高性价比蓝牙耳机推荐

现如今的蓝牙耳机越来越多&#xff0c;人们在选择时不免纠结&#xff0c;不知道选什么蓝牙耳机比较好&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款性价比高的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;299 蓝牙版本&am…...

Java代码弱点与修复之——Masked Field(掩码字段)

弱点描述 MF: Masked Field (FB.MF_CLASS_MASKS_FIELD) 是 FindBugs 代码分析工具的一个警告信息, 属于中风险的代码弱点。 Masked Field,翻译过来是掩码字段, 字段可以理解为属性, 那么掩码是什么意思呢? 掩码是什么? 掩码是一串二进制代码对目标字段进行位与运算,屏…...

C语言编程入门之刷题篇(C语言130题)(8)

&#xff08;题目标题可以直接跳转此题链接&#xff09; BC72 平均身高 描述 从键盘输入5个人的身高&#xff08;米&#xff09;&#xff0c;求他们的平均身高&#xff08;米&#xff09;。 输入描述&#xff1a; 一行&#xff0c;连续输入5个身高&#xff08;范围0.00~2.00…...

QML动画类型总结

目录 一 常用动画 二 特殊场景动画 一 常用动画 有几种类型的动画&#xff0c;每一种都在特定情况下都有最佳的效果&#xff0c;下面列出了一些常用的动画&#xff1a; 1、PropertyAnimation&#xff08;属性动画&#xff09;- 使用属性值改变播放的动画&#xff1b; 2、Num…...

编译一个魔兽世界开源服务端Windows需要安装什么环境

编译一个魔兽世界开源服务端Windows需要安装什么环境 大家好我是艾西&#xff0c;去年十月份左右wy和bx发布了在停服的公告。当时不少小伙伴都在担心如果停服了怎么办&#xff0c;魔兽这游戏伴随着我们渡过了太多的时光。但已经发生的事情我们只能顺其自然的等待GF的消息就好了…...

HTML5字体集合的实践经验

随着互联网的发展&#xff0c;网站已成为人们获取信息和交流的重要平台。而一个好的网站&#xff0c;不仅需要有美观的界面&#xff0c;还需要有良好的用户体验。其中&#xff0c;字体是影响用户体验的一个重要因素。下面就让我们来看看HTML字体集合的相关内容。 HTML字体集合是…...

Mybatis 框架 ( 一 ) 基本步骤

1.概念 1.1.什么是Mybatis框架 &#xff08;1&#xff09;Mybatis是一个半ORM&#xff08;Object Relation Mapping 对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;开发时只需要关注SQL语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、…...

【华为OD机试真题】We Are A Team(C++javapython)100%通过率 超详细代码注释 代码优化

We Are A Team 题目描述: 总共有n个人在机房,每个人有一个标号(1<=标号<=n) ,他们分成了多个团队,需要你根据收到的m条消息判定指定的两个人是否在 一个团队中,具体的: 1、消息构成为abc,整数a、b分别代表两个人的标号,整数C代表指令 2、c = = 0 代表a和b在一…...

Oracle_Workflow_Builder工作流工具(一)

简介 目标WORKFLOW是oracle 公司的一个标准产品&#xff0c;它通过图形化的方式来表达业务处理过程。用户使用工作流可以灵活地定义或更改流程的结构。WORKFLOW是建立在数据库基础上的一个应用&#xff0c;它由后台的数据对象和前台的客户端程序组成。本文档主要介绍工作流的基…...

JavaWeb学习--RequestResponse

目录 JavaWeb学习--Request&Response 1&#xff0c;Request和Response的概述 request:获取请求数据 response:设置响应数据 **小结** 2&#xff0c;Request对象 **小结** 2.2 Request获取请求数据 **小结** 2.4 请求参数中文乱码问题 URL编码 2.5 Request请求转…...

Linux cat 命令

cat&#xff08;英文全拼&#xff1a;concatenate&#xff09;命令用于连接文件并打印到标准输出设备上。 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName 参数说明&#xff1a; -n 或 --number&#xff1a;由 1 开始对所有输出的行数编…...

力扣sql中等篇练习(十四)

力扣sql中等篇练习(十四) 1 最后一个能进入电梯的人 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 在表某一个范围内的可以考虑自连接的方式,注意连接的表只需要精准的字段 # 需要排序是因为它需要找到最后一个上车的用户 SELECT q1.person_name…...

什么是Spring FactoryBean?有什么作用?

1、什么是Spring Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架&#xff0c;以 IOC和AOP为内核。含有七大核心模块 2、Spring的七大模块 (1)Spring Core&#xff1a;核心容器提供了Spring的基本功能。核心容器的核心功能是用IOC 容器来管理类的依赖关系&#xff…...

个人网站的设计和建设/北京seo网站设计

1.对象创建型模式 1.3 Abstract Factory模式 1.3.1 需求 在下面情况能够使用Abstract Factory模式: • 一个系统要独立于它的产品的创建、组合和表示时(这个需求和FactoryMethod类似)。 • 一个系统要由多个产品系列中的一个来配置时(这个需求也和Factory Method类…...

文件网站建设/苏州优化网站公司

列表项 三元运算符号: a3 b7 vala if a>b else valb print(val) 文件处理 首先给你一个文件&#xff0c;或者自己建立一个文件&#xff0c;那如何查看文件的内容呢&#xff1f; 1.安装个文本编辑器 2.选中右键&#xff0c;利用文本编辑器软件打开 3.查看OR写入 4.保存关闭 正…...

动态网站开发案例教程/站群优化公司

出现问题的code!!! 1 private void saveImage(String uri, String savePath) throws IOException {2 3 // 创建连接4 HttpURLConnection conn createConnection(uri);5 6 // 拿到输入流,此流即是图片资源本身7 InputStream imputStream conn.getInputStream(…...

搜索品牌价值的网站/系统优化大师下载

apache配置https一、yum 安装openssl和openssl-devel&#xff0c;httpd-devel二、生成证书&#xff08;也可以从公司的证书颁发机构获取&#xff09;&#xff1a;#建立服务器密钥 openssl genrsa -des3 1024 > /usr/local/apache/conf/server.key # 从密钥中删除密码&a…...

做网站郑州汉狮/上海城市分站seo

Python3中有六种基本数据类型&#xff1a; Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dict(字典) 他们之前有什么区别?联系?直接上图&#xff1a;按照图示的分类,开始学习吧。(python3) Number(数字类型) Python3 支持 int、float、bool、complex(复数)…...

班级网站开发环境/网络营销案例范文

InnoDB事务相关概念 ● redo log MySQL在开启事务时&#xff0c;会将执行的SQL保存到指定的log文件&#xff0c;即redo log。当MySQL执行recovery时执行redo log里的SQL操作即可。redo log不会被立即写入磁盘&#xff0c;会先写入redo buffer&#xff1b;当客户端执行commit时…...