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

目录

一,聚合函数 

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 子句用于过滤结果集中的行,而聚合函数是用于对一组行进行计算的函数。聚合函数的计算通常是在数据分组之后进行。

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

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

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

相关文章

YOLOv5-7.0训练过程中出现报错Example: export GIT_PYTHON_REFRESH=quiet

出现报错&#xff1a; This initial message can be silenced or aggravated in the future by setting the $GIT_PYTHON_REFRESH environment variable. Use one of the following values: - quiet|q|silence|s|silent|none|n|0: for no message or exception - warn…

从0到1实现vue3+vite++elementuiPlus+ts的后台管理系统(一)

前言&#xff1a;从这篇文章开始实现vue3vite的后台管理系统&#xff0c;记录下自己搭建后台系统图的过程。 这篇文章完成项目的初始化和基本配置&#xff0c;这一步可以直接跟着vue3官网进行。整个系列只有前端部分&#xff0c;不涉及后端。 vue3官网&#xff1a;https://cn.…

Spring Boot教程之二十五: 使用 Tomcat 部署项目

Spring Boot – 使用 Tomcat 部署项目 Spring Boot 是一个基于微服务的框架&#xff0c;在其中创建可用于生产的应用程序只需很少的时间。Spring Boot 建立在 Spring 之上&#xff0c;包含 Spring 的所有功能。如今&#xff0c;它正成为开发人员的最爱&#xff0c;因为它是一个…

java中操作线程

文章目录 前言创建与运行线程1. 创建线程①、方法1(直接new)②、方法2(使用Runnable配合Thread进行new操作)③、方法3&#xff08;FutureTask对象实现&#xff09;④、线程创建原理特别注意&#xff01; 2查看与杀死线程①、 Windows下 &#xff1a;②、 Java下 &#xff1a; 3…

【redis】redix在Linux下的环境配置和redis的全局命令

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

百度智能云千帆AppBuilder升级,百度AI搜索组件上线,RAG支持无限容量向量存储!

百度智能云千帆 AppBuilder 发版升级&#xff01; 进一步降低开发门槛&#xff0c;落地大模型到应用的最后一公里。在千帆 AppBuilder 最新升级的 V1.1版本中&#xff0c;企业级 RAG 和 Agent 能力再度提升&#xff0c;同时组件生态与应用集成分发更加优化。 • 企业级 RAG&am…

uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)

1.引入iconfont的图标&#xff0c;只保留这两个文件 2.App.vue引入到全局中 import "./static/fonts/iconfont.css"3.pages.json中配置text为图标对应的unicode {"path": "pages/invite/invite","style": {"h5": {"…

融云分享基于 Rust 的鸿蒙 SDK 开发实践

12 月 5 日&#xff0c;以“同心聚力&#xff0c;共建共享鸿蒙新生态”为主题的“鸿蒙生态伙伴 SDK 开发者论坛”在京举行。 融云凭借对鸿蒙生态的率先适配和创新贡献&#xff0c;荣获华为鸿蒙生态“HarmonyOS NEXT SDK 星河奖”。 本次论坛邀请了多位行业领导者参与&#xff…

iperf3 带宽性能测量工具

随笔记录 目录 1 背景介绍 2. Iperf3 2.1 基本框架介绍 2.2 Iperf3 发送TCP包 2.3 IPerf 发送UDP 包 1 背景介绍 基于测试USER DMA 压力测试需求。 2. Iperf3 2.1 基本框架介绍 Iperf3 发送数据包 TCP/UDP 包 1. 查看网卡配置信息 2. 此处因共用一张板卡&#xff0…

Java-27 深入浅出 Spring - 实现简易Ioc-03 在上节的业务下手动实现IoC

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

vue使用pdfh5.js插件,显示pdf文件白屏

pdfh5&#xff0c;展示文件白屏&#xff0c;无报错 实现效果图解决方法(降版本)排查问题过程发现问题查找问题根源1、代码写错了&#xff1f;2、预览文件流的问题&#xff1f;3、pdfh5插件更新了&#xff0c;我的依赖包没更新&#xff1f;4、真相大白 彩蛋 实现效果图 解决方法…

【机器学习算法】——决策树之集成学习:Bagging、Adaboost、Xgboost、RandomForest、XGBoost

集成学习 **集成学习(Ensemble learning)**是机器学习中近年来的一大热门领域。其中的集成方法是用多种学习方法的组合来获取比原方法更优的结果。 使用于组合的算法是弱学习算法&#xff0c;即分类正确率仅比随机猜测略高的学习算法&#xff0c;但是组合之后的效果仍可能高于…

C/S软件授权注册系统(Winform+WebApi+.NET8+EFCore版)

适用软件&#xff1a;C/S系统、Winform桌面应用软件。 运行平台&#xff1a;Windows .NETCore&#xff0c;.NET8 开发工具&#xff1a;Visual Studio 2022&#xff0c;C#语言 数据库&#xff1a;Microsoft SQLServer 2012&#xff0c;Oracle 21c&#xff0c;MySQL8&#xf…

Big Model weekly | 第49期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 Magnetic Preference Optimization: Achieving Last-iterate Convergence for Language Models Alignment 自我对弈方法在多个领域增强模型能力方面展现出了显著的成功。在基于人类反馈的强化学习&#xff0…

如何建设金融数据中心

目录 总则 概述 要求 基本原则 数据中心治理 概述 战略管控 战略规划 战略实施 延伸阅读 总则 概述 本文以描述金融数据中心的治理域内容为基础,从金融数据中心建设、运营及安全保障的角度出 发,逐一描述场地环境、网络通信、运行管理和风险管控等能力域的具体…

医学分割数据集B超图片肝脏分割数据集labelme格式271张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;271 标注数量(json文件个数)&#xff1a;271 标注类别数&#xff1a;1 标注类别名称:["liver"] 每个类别标注的框数&#xf…

Android:展锐T760平台camera PDAF调试

一、平台PDAF流程 目前展锐平台主要支持Shield PD Sensor、Dual PD Sensor 1、Shield PD Sensor Type1相位差和信心度结果直接从Sensor输出,不经过平台算法库。 Type2Sensor端抽取PD信息, 放在一块buffer输出, PDAF算法库算出相位差和信心度。 Type3Sensor端直接输出将带有…

MySQL的历史和地位

秋招之后&#xff0c;开始深入学习后端开发知识啦。把学到的东西分享给大家最开心啦。就从MySQL开始吧。 首先说一下MySQL的历史和地位。主要是看一下我们为什么要学习&#xff0c;而不是说让我们学什么我们就学什么。 地位 这张图是我从DB-Engines截取的2024年12月最新的数据…

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现 最后设置首页的推荐模块&#xff0c;参考模板如下图所示。 一、首页热门推荐模块的实现 对于热门推荐模块&#xff0c;先有上面的小标题栏&#xff0c;这里的标题栏也有一个小图标&#xff0c;首先从“百度图库”中…

使用ENSP实现NAT(2)

一、NAT的类型 二、静态NAT 1.项目拓扑 2.项目实现 路由器AR1配置&#xff1a; 进入系统视图 sys将路由器命名为AR1 sysname AR1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为192.168.10.254/24 ip address 192.168.10.254 24进…