MySQL—统计函数和数学函数以及GROUP BY配合HAVING

 合计/统计函数

count

-- 演示 mysql 的统计函数的使用
-- 统计一个班级共有多少学生?
SELECT COUNT(*) FROM student
-- 统计数学成绩大于 90 的学生有多少个?
SELECT COUNT(*) FROM student
WHERE math > 90
-- 统计总分大于 250 的人数有多少?
SELECT COUNT(*) FROM student
WHERE (math + english + chinese) > 250
-- count(*) 和 count(列) 的区别
解释 :count(*) 返回满足条件的记录的行数
count(列): 统计满足条件的某列有多少个,但是会排除 为 null 的情况
CREATE TABLE t15 (
`name` VARCHAR(20));
INSERT INTO t15 VALUES('tom');
INSERT INTO t15 VALUES('jack');
INSERT INTO t15 VALUES('mary');
INSERT INTO t15 VALUES(NULL);
SELECT * FROM t15;
SELECT COUNT(*) FROM t15; -- 4
SELECT COUNT(`name`) FROM t15;-- 3

 sum

 

-- 演示 sum 函数的使用
-- 统计一个班级数学总成绩?
SELECT SUM(math) FROM student; 
-- 统计一个班级语文、英语、数学各科的总成绩
SELECT SUM(math) AS math_total_score,SUM(english),SUM(chinese) FROM student;
-- 统计一个班级语文、英语、数学的成绩总和
SELECT SUM(math + english + chinese) FROM student; 
-- 统计一个班级语文成绩平均分
SELECT SUM(chinese)/ COUNT(*) FROM student;
SELECT SUM(`name`) FROM student; -- 演示 max 和 min 的使用
-- 求班级最高分和最低分(数值范围在统计中特别有用)
SELECT MAX(math + english + chinese), MIN(math + english + chinese)
FROM student; -- 求出班级数学最高分和最低分
SELECT MAX(math) AS math_high_socre, MIN(math) AS math_low_socre
FROM student;

avg

 

-- 演示 avg 的使用
-- 练习:
-- 求一个班级数学平均分?
SELECT AVG(math) FROM student; 
-- 求一个班级总分平均分
SELECT AVG(math + english + chinese) FROM student;

max/min

-- 求班级最高分和最低分(数值范围在统计中特别有用)
SELECT MAX(math + english + chinese), MIN(math + english + chineseFROM student;
-- 求出班级数学最高分和最低分
SELECT MAX(math) AS math_high_socre, MIN(math) AS math_low_socreFROM student; 

group by配合 having

使用 group by 子句对列进行分组

使用 having 子句对分组后的结果进行过滤(筛选条件)

 

# 演示 group by + having
GROUP by 用于对查询的结果分组统计, (示意图)
-- having 子句用于限制分组显示结果. 
-- ?如何显示每个部门的平均工资和最高工资
-- 老韩分析: avg(sal) max(sal)
-- 按照部门来分组查询
SELECT AVG(sal), MAX(sal) , deptnoFROM emp GROUP BY deptno; 
-- 使用数学方法,对小数点进行处理
SELECT FORMAT(AVG(sal),2), MAX(sal) , deptnoFROM emp GROUP BY deptno; 
-- ?显示每个部门的每种岗位的平均工资和最低工资
-- 老师分析 1. 显示每个部门的平均工资和最低工资-- 2. 显示每个部门的每种岗位的平均工资和最低工资
SELECT AVG(sal), MIN(sal) , deptno, jobFROM emp GROUP BY deptno, job;--先根据部门再根据部门中的岗位,依次递进的感觉
--GROUP BY deptno, job;根据部门,根据岗位,综合起来就是根据部门中的岗位-- ?显示平均工资低于 2000 的部门号和它的平均工资 // 别名
-- 老师分析 [写 sql 语句的思路是化繁为简,各个击破]
-- 1. 显示各个部门的平均工资和部门号
-- 2. 在 1 的结果基础上,进行过滤,保留 AVG(sal) < 2000
-- 3. 使用别名进行过滤
SELECT AVG(sal), deptnoFROM emp GROUP BY deptnoHAVING AVG(sal) < 2000;
-- 使用别名,查询速度更快,因为只用到一次avg函数
SELECT AVG(sal) AS avg_sal, deptnoFROM emp GROUP BY deptnoHAVING avg_sal<2000

 

数学函数(ABS等)

-- 演示数学相关函数
-- ABS(num) 绝对值
SELECT ABS(-10) FROM DUAL; 
-- BIN (decimal_number )十进制转二进制
SELECT BIN(10) FROM DUAL; 
-- CONV(number2,from_base,to_base) 进制转换
-- 下面的含义是 8 是十进制的 8, 转成 2 进制输出
SELECT CONV(8, 10, 2) FROM DUAL; 
-- 下面的含义是 8 是 16 进制的 8, 转成 10 进制输出
SELECT CONV(8, 16, 10) FROM DUAL; 
-- CEILING (number2 ) 向上取整, 得到比 num2 大的最小整数
SELECT CEILING(-1.1) FROM DUAL; 
-- FLOOR (number2 ) 向下取整,得到比 num2 小的最大整数
SELECT FLOOR(-1.1) FROM DUAL; 
-- FORMAT (number,decimal_places ) 保留小数位数(四舍五入)
SELECT FORMAT(78.125458,2) FROM DUAL; 
-- HEX (DecimalNumber ) 转十六进制
-- LEAST (number , number2 [,..]) 求最小值
SELECT LEAST(0,1, -10, 4) FROM DUAL;
-- MOD (numerator ,denominator ) 求余
SELECT MOD(10, 3) FROM DUAL; 
-- RAND([seed]) RAND([seed]) 返回随机数 其范围为 0 ≤ v ≤ 1.0
-- 老韩说明
-- 1. 如果使用 rand() 每次返回不同的随机数 ,在 0 ≤ v ≤ 1.0
-- 2. 如果使用 rand(seed) 返回随机数, 范围 0 ≤ v ≤ 1.0, 如果 seed 不变,
-- 该随机数也不变了
SELECT RAND() FROM DUAL;
SELECT CURRENT_TIMESTAMP() FROM DUAL;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringCloud应用框架】Nacos命名空间、分组和DataID三者关系

第五章 Spring Cloud Alibaba Nacos之命名空间、分组和DataID三者关系 文章目录 一、名词解释三者关系 二、切换不同环境DataID方案Group方案Namespace空间方案 一、名词解释 命名空间&#xff08;Namespace&#xff09; ​用于进行租户粒度的配置隔离。不同的命名空间下&…

GraphRAG

什么是RAG&#xff1f; RAG 是一种自然语言查询方法&#xff0c;用于通过外部知识增强现有的LLM&#xff0c;因此如果问题需要特定知识&#xff0c;问题的答案会更相关。它包括一个检索信息组件&#xff0c;用于从外部源获取附加信息&#xff0c;也称为“基础上下文”&#xf…

pnpm介绍

PNPM 是一个 JavaScript 包管理器&#xff0c;类似于 npm 和 Yarn。它的全称是 "Performant npm"&#xff0c;主要设计目标是优化包的安装和管理过程&#xff0c;以提升速度和效率。PNPM 的主要特点包括&#xff1a; 符号链接&#xff08;Symlink&#xff09;&#x…

AI产品经理发展与规划

今天引用高飞老师的讲课内容&#xff0c;分享一下&#xff0c;何为AI产品经理&#xff1f;这个话题不仅仅希望介绍AI产品经理的工作方式等方面的内容&#xff0c;更多的在于讨论未来产品经理这个行业应该如何发展&#xff1f;行业壁垒在何处&#xff1f;如何应对中年危机&#…

名企面试必问30题(二十六)——毕业这么久了,为什么还没有找到工作?

回答一&#xff1a; “毕业后的这段时间&#xff0c;我一直在努力寻找最适合自己发展的岗位。我没有急于随便接受一份工作&#xff0c;而是希望能够进入一个与我的专业技能和职业规划高度匹配的公司。在这个过程中&#xff0c;我不断提升自己的技术能力&#xff0c;学习新的测…

PyQT: 开发一款ROI绘制小程序

在一些基于图像或者视频流的应用中&#xff0c;比如电子围栏/客流统计等&#xff0c;我们需要手动绘制一些感兴趣&#xff08;Region of Interest&#xff0c;简称ROI&#xff09;区域。 在这里&#xff0c;我们基于Python和PyQt5框架开发了一款桌面应用程序&#xff0c;允许用…

c#类型转换和常见集合类型

目录 1. 整数转换&#xff0c;整数和字符串&#xff0c;字符串和整数之间的转换怎么实现&#xff1f; 2. 日期转换&#xff0c;获取当前日期&#xff0c;字符串转日期&#xff0c;日期转字符串怎么实现&#xff1f; 3. 举例一维、二维、三维数组 4. 需求&#xff1a;有个88…

事务(数据库)

是一组操作的集合&#xff0c;是一个不可分割的工作单位&#xff0c;事物会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;这些操作要么同时成功&#xff0c;要么同时失败 create table account(id int auto_increment primary key comment 主键ID,name va…

VPN 的入门介绍

VPN&#xff08;虚拟专用网络&#xff09; 简介 虚拟专用网络&#xff0c;简称虚拟专网&#xff08;VPN&#xff09;&#xff0c;其主要功能是在公用网络上建立专用网络&#xff0c;进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实…

14-48 剑和诗人22 - RAG 的主要痛点和解决方案

​​​​​ 检索增强生成 (RAG) 模型已成为一种有前途的方法&#xff0c;它利用存储在文档中的外部知识来提高生成文本的准确性和相关性。通过检索和调节相关的上下文文档&#xff0c;与传统语言模型相比&#xff0c;RAG 模型可以产生更真实、更深入和更具体的响应。 然而&…

诸葛亮的空城计 - 代理模式

定场诗 “无形之中蕴含至理&#xff0c;虚实相生方见大道。” 在三国演义中&#xff0c;诸葛亮的空城计可谓神来之笔。这看似冒险的策略&#xff0c;实则蕴含深意。今天&#xff0c;我们将透过空城计&#xff0c;一窥软件设计中代理模式的奥秘。 西城无人旦夕危&#xff0c;…

君方智能设计平台-事务管理技术方案

1.背景介绍 事务处理是指对数据进行一组操作&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败&#xff0c;以确保数据的一致性和完整性。软件的事务管理主要实现方案主要涉及以下几个方面&#xff1a; &#xff08;1&#xff09;数据一致性&#xff1a;在CAD软件中…

STM32实现看门狗(HAL库)

文章目录 一. 看门狗1. 独立看门狗&#xff08;IWDG&#xff09;1.1 原理1.2 相关配置1.3 相关函数 2. 窗口看门狗&#xff08;WWDG&#xff09;2.1 原理2.2 相关配置2.3 相关函数 一. 看门狗 单片机在日常工作中常常会因为用户配置代码出现BUG&#xff0c;而导致芯片无法正常工…

Flask项目搭建及部署(完整版!全网最全)

flask搭建及部署 pip 19.2.3 python 3.7.5 Flask 1.1.1 Flask-SQLAlchemy 2.4.1 Pika 1.1.0 Redis 3.3.11 flask-wtf 0.14.2 1、创建flask项目&#xff1a; 创建完成后整个项目结构树&#xff1a; app.py: 项⽬管理⽂件&#xff0c;通过它管理项⽬。 static: 存放静态文…

map和set的原理、优劣势、应用场景和示例代码,统统告诉你。

map和set的原理都是基于哈希表实现的&#xff0c;通过哈希值来快速查找和插入元素&#xff0c;从而实现高效的数据存储和管理&#xff0c;那么他们之间有什么不同呢&#xff0c;该如何选择&#xff0c;本文带你了解。 一、map和set的原理 map和set都是数据结构&#xff0c;用…

【分布式系统三】监控平台Zabbix对接grafana(截图详细版)

目录 一.安装grafana并启动 二.浏览器访问 三.导入zabbix数据&#xff0c;对接grafana 四.如何导入模版 以前两篇博客为基础 【分布式系统】监控平台Zabbix介绍与部署&#xff08;命令截图版&#xff09;-CSDN博客 【分布式系统】监控平台Zabbix自定义模版配置-CSDN博客 …

java ReadWriteLock接口

在 Java 中&#xff0c;ReadWriteLock 接口的实现类ReentrantReadWriteLock 类提供了一种允许多个线程同时读取某一资源但只允许一个线程写的锁定机制。这种机制可以提高并发性能&#xff0c;特别是在读操作远多于写操作的场景下。 特性&#xff1a; 可重入&#xff1b;不存…

前端使用Threejs加载机械臂并控制机械臂跳舞

1. 前言 在我的第一篇博客中,大致讲解了如何使用threejs导入机械臂模型,以及如何让机械臂模型动起来的案例,可以看一下之前的博客前端使用Threejs控制机械臂模型运动 本篇博客主要讲解的是在原来的基础上添加GSAP动画库的应用,可以通过动画,来让机械臂进行指定轨迹位姿的运动…

基于SpringBoot的休闲娱乐代理售票系统

本系统主要包括管理员和用户两个角色组成&#xff1b;主要包括&#xff1a;首页、个人中心、用户管理、折扣票管理、分类管理、订单信息管理、退票信息管理、出票信息管理、系统管理等功能的管理系统。 &#x1f495;&#x1f495;作者&#xff1a;Weirdo &#x1f495;&#x…

Python酷库之旅-第三方库Pandas(009)

目录 一、用法精讲 19、pandas.read_xml函数 19-1、语法 19-2、参数 19-3、功能 19-4、返回值 19-5、说明 19-6、用法 19-6-1、数据准备 19-6-2、代码示例 19-6-3、结果输出 20、pandas.DataFrame.to_xml函数 20-1、语法 20-2、参数 20-3、功能 20-4、返回值 …