SQL server学习06-查询数据表中的数据(中)

news2024/12/17 6:59:24

目录

一,聚合函数 

1,常用聚合函数 

2,具体使用 

 二,GROP BY子句分组

1,基础语法 

2,具体使用

3,加上HAVING对组进行筛选 

4,使WHERE记录查询条件


 

汇总查询:在对数据库进行查询时,经常需要查询汇总信息,例如统计某门课不及格人数,得到不及格率,或者是统计课程的平均分等。

在SQL中,有5个聚合函数用于汇总等查询:Sum,Avg,Min,Max,Count。

一,聚合函数 

1,常用聚合函数 

常用的聚合函数有:Sum(),Avg(),Min(),Max(),Count()。

聚合函数
函数功能
Sum(expression)对数字表达式中的所有列求和,仅能再数值型列中使用
Avg(expression)对数字表达式中的所有列求平均值,仅能在数值型列中使用
Min(expression)求表达式中的最小值,不可以在bit数据类型中使用
Max(expression)求表达式中的最大值,不可以在bit数据类型中使用
Count(*)

计算所选定行的行数,即共有多少表中的记录参与了计算。一般用来统计个数。

如下,统计班级编号为1(1班)的学生人数👇

Count(expression)计算表达式中值的个数

2,具体使用 

它们的用法类似,都是将需要进行统计的列作为参数传入函数中(即小括号内)。

在之前创建的成绩表score中,得分get列是tinyint数据类型(数值型数据),可以对get列进行求和,平均,取最大,最小等操作。表结构如下👇

 

由于之前向成绩表中填充的成绩只有课程编号为1的课程成绩,接下来需要再填充课程编号2和3的学生成绩(成绩表是学生表和课程表的从表,需要先确保课程表中有相应的课程,学生表中有相应的学生),因此先填充课程表,之后再填充成绩表:

-- 插入课程表courses中的数据(这里可以多填点记录)
INSERT INTO courses(cno,cne,cpd,cct)
VALUES
('1','SQLserver DataBase Application principle','96','6'),  --SQL server 数据库应用原理
('2','C Language','86','3'),  -- C语言
('3','Introduction to Computer Science','86','3'),  --计算机科学导论
('4','Principle of Computer Organization ','80','3'), --计算机组成原理
('5','Computer Network','90','5')  --计算机网络


-- 插入成绩表score中的数据
INSERT INTO courses(cno,cne,cpd,cct)
VALUES
('1','2','90'),
('2','2','50'),
('3','2','77'),
('4','2','90'),
('5','2','66'),
('1','3','88'),
('2','3','78'),
('3','3','68'),
('4','3','58'),
('5','3','86')

小任务:统计学号为2,名字叫 lisi (李四)的同学所上课程的总成绩,平均值,最高分,最低分,如下👇

 

 二,GROP BY子句分组

1,基础语法 

需要使用到之前的查询语法:

SELECT 列名或表达式
--INTO 新表名   --创建新表并将结果集插入新表中
FROM 表名     --指定查询语句中所使用的表或视图
WHERE 查询条件   --设定检索条件。定义了源表中的行要满足SELECT语句的要求所必须达到的条件。只有符合条件的行才向结果集提供数据。即,不采用不符合条件的行数据。
GROUP BY 分组表达式  --分组子句
HAVING 分组条件   --和GROUP BY 一起使用,表示过滤组。
--ORDER BY 列名或表达式 ASC升序/DESC降序  --为查询结果排序。

其中:

  1. GROUP BY 子句将查询结果按分组表达式进行分组,值相等的的记录为一组
  2. 结果集中给每组(至多)产生一一行记录。
  3. 查询列表中的项只能来自GROUP BY 中的分组字段或聚合函数。
  4. HAVING 为结果集中的组设置条件,只有满足条件的组才能输出

如果需要每个班的学生人数,每门课的平均分等这样的统计数据,就需要对记录进行分组。同一组记录进行汇总统计。

 

2,具体使用


例如,统计每门功课的平均分:按照课程号分组。

SELECT cno AS 课程号,Avg(get) AS 课程平均分 FROM score GROUP BY cno

3,加上HAVING对组进行筛选 

如果还想要对分组后的结果进一步,如只查看课程平均分大于等于75分的课程,就需要在GROUP BY 语句的后面加上HAVING 用于筛选组。如下👇

SELECT cno AS 课程号,Avg(get) AS 课程平均分 FROM score
GROUP BY cno HAVING Avg(get)>=75

4,使WHERE记录查询条件

 有时在分组之前就需要对查询的结果集进行判断,因此需要加上之前所学的WHERE子句,记录结果集的查询条件。

例如,查询至少有一门课程成绩不及格的学生学号。如下👇

SELECT sno AS 学号,Count(*) AS 不及格门数
FROM score WHERE get<60
GROUP BY sno
HAVING Count(*)>=1

 需要注意的是,WHERE子句中不能有聚合函数,主要是因为,在 SQL 中,WHERE 子句用于过滤结果集中的行,而聚合函数是用于对一组行进行计算的函数。聚合函数的计算通常是在数据分组之后进行。

有问题请在评论区留言或者是私信我,回复时间不超过一天。

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

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

相关文章

上传文件时获取音视频文件时长和文本文件字数

获取音视频文件时长和文本文件字数 一、获取音视频文件时长二、计算文本文件字数 最近有个需求&#xff0c;要求上传文件时获取音视频文件时长和文本文件字数&#x1f436;。 发现这样的冷门资料不多&#xff0c;特做个记录。本文忽略文件上传功能&#xff0c;只封装核心的工具…

C语言学习day22:进程ID获取工具/GetWindowThreadProcessId函数

简言&#xff1a; 每个人都有身份证号&#xff0c;这个身份证号就是个人的唯一标识符 进程也是如此&#xff0c;每个进程也有唯一的标识符&#xff0c;来标记自身是独一无二的 如下图:其中PID &#xff1a;Process ID&#xff0c;即进程ID 但是我们怎么去在编程中去获取某个…

使用Localstorage(Mapty)

使用Localstorage(Mapty) 首先&#xff0c;我们创建一个函数名&#xff0c;先在app中去调用它 // 为所有的锻炼创建本地存储this._setLocalStorage();之后我们就开始编写这个函数的功能 _setLocalStorage() {localStorage.setItem(workouts, JSON.stringify(this.#workouts));…

如何用细节提升用户体验?

前端给用户反馈是提升用户体验的重要部分&#xff0c;根据场景选择不同的方式可以有效地提升产品的易用性和用户满意度。以下是常见的方法&#xff1a; 1. 视觉反馈 用户执行了某些操作后&#xff0c;需要即时确认操作结果。例如&#xff1a;按钮点击、数据提交、页面加载等。…

OpenHarmony-3.HDF input子系统(5)

HDF input 子系统OpenHarmony-4.0-Release 1.Input 概述 输入设备是用户与计算机系统进行人机交互的主要装置之一&#xff0c;是用户与计算机或者其他设备通信的桥梁。常见的输入设备有键盘、鼠标、游戏杆、触摸屏等。本文档将介绍基于 HDF_Input 模型的触摸屏器件 IC 为 GT91…

旅游资源系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

Docker网络与数据管理

Docker网络与数据管理 1. Docker网络基础&#xff1a;桥接网络、主机网络和自定义网络 Docker提供了多种网络模式&#xff0c;以满足不同应用场景的需求。理解Docker的网络模式对于容器间通信、网络安全性及性能优化至关重要。在Docker中&#xff0c;每个容器都可以连接到不同…

X.game解析柚子币提升速效双向利好和年中历史新低原因

柚子币最新消息&#xff0c;币安宣布将于2024年9月25日21:00左右暂停柚子币网络上的代币存取业务&#xff0c;以全力支持即将到来的柚子币网络升级和硬分叉&#xff0c;这一消息为柚子币的未来发展增添了新的期待和变数。 除了速度的提升&#xff0c;Spring1.0还带来了诸多技术…

数据结构之线性表1

2.1 线性表的定义和基本操作 1.线性结构的特点是&#xff1a;在数据元素的非空有限集中&#xff0c; &#xff08;1&#xff09;存在惟一的一个被称做“第一个”的数据元素&#xff1b; &#xff08;2&#xff09; 存在惟一的一个被称做“最后一个”的数据元素&#xff1b; &a…

Tomcat原理(5)——tomcat最终实现

目录 一、什么是Servlet容器 二、ServletConfigMapping构建实现容器 ServletConfigMapping MyTomcat 三、优化server Server MyTomcat 四、匹配 代码如下&#xff1a; 测试如下&#xff1a; 上一篇博客已经为介绍了servelet的实现 &#xff0c;这篇对上一篇博客进行补…

echarts 常见组件合集

仪表盘组件 <template><div class"w100 h100" ref"chart"></div> </template><script> import resize from "./mixins/resize"; export default {mixins: [resize],props: ["list"],watch: {list: {// …

C/C++代码性能优化技巧的书籍及资料

使用C/C开发的场景&#xff0c;大多对代码的执行的速度&#xff0c;实时性有较高的要求&#xff0c;像嵌入式系统的开发&#xff0c;资源还受限。在算力存储空间有限的MCU上写出简洁又高效的代码实际是一种艺术。软件工程师在代码设计上的这种差距&#xff0c;会反映在产品的性…

FlightAD 解读

一 文章相关信息 出处&#xff1a;ICPADS CCF C 会议&#xff08;代码未开源&#xff09;&#xff0c;COUTA 研究团队的另一研究 二 Methodology 1. 整体架构&#xff1a; 2. Multi-Scale Sampling&#xff08;多尺度&#xff09; 实际上&#xff0c;就是对每个单通道作 “多…

20241216软考架构-------软考案例23答案

每日打卡题案例23 23.【2015年真题】 难度&#xff1a;一般 阅读以下关于系统设计建模的说明&#xff0c;回答下列问题。&#xff08;共25分&#xff09; 【说明】 某公司拟研制一款高空监视无人直升机&#xff0c;该无人机采用遥控一自主复合型控制实现垂直升降。该直升机飞行…

170页ppt解读如何进行大型集团信息安全管理体系优化咨询

文档为甲方集团信息安全管理体系优化咨询项目的信息安全建设规划报告&#xff0c;重点围绕信息安全建设的规划与设计展开。报告首先进行了信息安全建设需求分析&#xff0c;明确了当前信息安全现况存在的问题、信息安全发展趋势及具体需求汇整&#xff0c;为后续建设提供了坚实…

RK3576 Android14,内存大于4G时UVC应用无法申请内存

最近有个项目需要将Linux虚拟成UVC摄像头&#xff0c;开发过程中遇到一个奇怪的事情&#xff0c;通过V4l2框架接口申请内存时&#xff0c;相同的板子&#xff0c;只是内存一个4G一个8G。4G的内存可以申请成功&#xff0c;8G就不行。提示“内存不足” 内存更大反而内存不足&…

TimesFM(Time Series Foundation Model)时间序列预测股市价格的数据研究(4)

TimesFM&#xff08;Time Series Foundation Model&#xff09;时间序列预测的数据研究(3)-CSDN博客文章浏览阅读846次&#xff0c;点赞19次&#xff0c;收藏12次。1. **表示预测区间**&#xff1a;在很多预测任务中&#xff0c;模型给出的不只是一个单一的预测值&#xff08;比…

opencv所有常见函数

一、opencv图像操作 二、opencv图像的数值运算 三、opencv图像的放射变换 四、opencv空间域图像滤波 五、图像灰度化与直方图 六、形态学图像处理 七、阈值处理与边缘检测 八、轮廓和模式匹配

常见漏洞—SSRF_FastCGI

FastCGI协议 简介 Fast CGI源自旧版本的CGI 路由/结构图 # 访问url --> 浏览器生成HTTP请求报文 --> web server解析请求&#xff08;例如nginx&#xff09; web server 是内容的分发者 当访问静态页面时&#xff0c;web server 会直接返回资源&#xff0c;例如index.htm…

【游戏设计原理】10 - 科斯特的游戏理论

科斯特的游戏理论强调了游戏与学习之间的关系&#xff0c;认为“玩得开心”与“学习”是紧密相连的。换句话说&#xff0c;游戏的核心魅力在于通过适当的挑战和不断的学习进程激发玩家的内啡肽循环&#xff0c;这让玩家在不断的探索和进步中找到乐趣。 科斯特的理论通过游戏是…