子查询和分组查询

MySQL 子查询和分组查询 概述 子查询是SQL查询中的重要一块,是我们基于多表之间进行数据聚合和判断的一种手段,使得我们的处理复杂数据更加的便捷,这一节我们主要来了解一下子查询。 先做一下数据准备,这边建立三张表:班级、学生、毕业成绩表,用于后面的操作: drop database if exists `Helenlyn_Class`; create database `Helenlyn_Class`; /*班级表*/ DROP TABLE IF EXISTS `classes`; CREATE TABLE `classes` ( `classid` int primary key AUTO_INCREMENT 立即下载

一、子查询

什么是子查询?

一个查询语句里面嵌套一个查询。外层的叫做符查询,内层里面嵌套的叫做子查询。

语法:

select  ....... from 表名 where 字段 比较运算符 (子查询);

#其中,在查询过程中,先执行子查询部分,求出子查询部分的值,再执行整个父查询,返回最后的结果。

 

注意:将子查询和比较运算符联合使用时,必须保证子查询返回的值只有一个,否则比较运算符必须用 IN。

使用 IN 关键字可以使父查询匹配子查询返回多个单字段值,也就是可以返回多个值。

示例:


#使用IN子查询
SELECT studentNo,studentName FROM student
WHERE studentNo IN (
	SELECT studentNo FROM result WHERE subjectNo=(
	SELECT subjectNo FROM `subject`
	WHERE subjectName ='Logic Java'
)AND examDate =(
	SELECT  MAX(examDate) FROM result 
	WHERE subjectNo=(
	SELECT subjectNo FROM `subject`
	WHERE subjectName ='Logic Java'
	)
   )
);

二、分组查询

1.使用group by 分组查询:

示例:

#使用group by 子句实现查询
select subjectNo,avg(studentResult) as 课程平均成绩
from result
group by subjectNo;

多列分组查询:

#统计每个学期的男,女人数
select count(*) as 人数,gradeId AS 年级,sex as 性别 
from  student 
group by grade ,sex
order by grade;

注意:在使用group by分组查询时,在select 后面的列的是限制的,一般允许如下:

  • group by 子句后的列
  • 聚合函数计算出的列

2.使用HAVING 子句进行分则查询

#使用having子句对分组后的数据进行筛选
select count(*) as 人数,gradeId AS 年级 from student 
group by gradeId
having  count(*) >3;

#注意:having 子句必须是写在分组后面的

使用子句查询的顺序:

where > group by > having > order by > limit ;

如下所示:

#分组查询
select 列  from 表 where 分组前条件
group by 分组列 having 分组后条件
order by 排序列
limit 分页;

 

 

 

OCCT(Open CASCADE Technology)入门-2.搭建开发环境 安装完成后,在【扩展】菜单下会看到【Qt VS Tools】菜单,打开子菜单【options】进入qt配置窗口。打开VS后随便创建一个新项目,进入开发环境主页,打开顶部菜单【扩展】->【管理扩展】打开管理扩展窗口。然后点击右下角【创建】,一路【next】即可,最后会进入到开发主界面,得到一个下面的工程结构。好了,到这里基本的环境我们已经安装好了,下面我们开始创建项目并配置开发环境。打开顶部菜单【项目】,点击最后一个菜单项【xxx属性】,进入项目配置界面。这里的配置一般不用改,我们看【Versions】 阅读详情

相关推荐

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

mysql子查询字段,如何在MySQL的子查询中指定父查询字段?

Is there a way to specify the parent query field from within a subquery in mySQL?For Example:I have written a basic Bulletin Board type program in PHP.In the database each post contains: id(PK) and pa...

weixin_35458714的博客 798

告别编译臃肿!手把手教你为Arduino UNO打造超轻量级U8g2中文字库(附完整工具链)

本文详细介绍了如何为Arduino UNO打造超轻量级U8g2中文字库,解决默认字库占用大量存储空间的问题。通过自定义字体工具链,提取项目所需汉字并生成精简字库,显著减少程序体积。文章包含完整实现步骤、优化技巧及实战经验,帮助开发者在资源受限的微控制器上高效显示中文。

weixin_29274337的博客 260

子查询及分组查询

子查询及分组查询,HAVING 条件表达式,Where和having都是过滤条件的,有什么区别的分析

m0_73030012的博客 1081

解决ublox无法定位问题(一直输出$GxTXT)

最近开始研究有关RTK技术的项目,于是先购买了两块ublox公司的NEO-M8T-0型号芯片。(注意NEO-M8T还细分为NEO-M8T-0和NEO-M8T-2,前者不支持RTCM输出,后者支持RTCM输出) 首先都是按常规步骤,直接把芯片模块串口接电脑调试,这边推荐是用官网的u-center调试软件。GPS芯片大多数都是上电后串口自动发送定位等信息,这两块芯片有一块正常情...

众缈之门的博客 7359

AMEsim柱塞泵的建模学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为什么要对柱塞泵进行仿真?二、Amesim中柱塞泵的模型1.amesim中自己的定排量五柱塞的斜盘柱塞泵2.压力、流量仿真总结 前言 最近在学习Amesim进行柱塞泵的仿真学习,顺便在这里记录我的学习过程,这是我的初衷 提示:以下是本篇文章正文内容,下面案例可供参考 一、为什么要对柱塞泵进行仿真? 柱塞泵是功能和动力学比较复杂的流体机械。而在实际实验中,往往没有条件或者需要对柱塞泵做一些优化,所以需要我们利用仿真...

innocent_cft的博客 8187

MySQL——子查询、排序、分组、分页优化

文章目录MySQL——子查询和排序优化1、子查询优化2、ORDER BY排序优化3、filesort算法:双路排序和单路排序 MySQL——子查询和排序优化 1、子查询优化 子查询 当一个查询是另一个查询的子部分是,,称之为子查询(查询语句中嵌套含有查询语句)。子查询也是使用频率比较高的一种查询类型。因此,优化子查询,对于整个系统的性能也有直接的影响。 子查询的位置 在 SELECT 语句中,子查询可以被嵌套在 SELECT 语句的列、表和查询条件中,即 SELECT 子句,FROM 子句、WHE

万里顾一程的博客 2297

数字签名(Digital Signature)技术详解:从原理到实践

数字签名技术是数字世界身份认证和数据完整性的核心保障。它结合非对称加密和哈希函数两大密码学技术,实现双重安全防护:哈希函数确保数据完整性,非对称加密确保签名不可伪造。签名过程包括发送方用私钥加密文件哈希值生成签名,接收方用公钥验证签名并比对哈希值。RSA、DSA、ECDSA等主流算法各有特点,适用于不同场景。公钥基础设施(PKI)通过数字证书和CA认证建立信任链,确保公钥真实性。这套技术体系支撑着电子合同、软件认证、在线交易等各类数字安全应用,是现代网络信任体系的基石。

guigenyi的专栏 1371

MySQL中的分组查询、子查询(嵌套查询)

当涉及到复杂的数据分析时,MySQL 中的分组查询和子查询非常有用。以下是关于这两个概念的总结。

Kyriecy的博客 1841

三种方法教你下载大模型到本地,总有一种适合你

本文主要介绍了下载大模型到本地的三种解决方案,希望能对同学们有所帮助。 文章目录 1. 场景/问题描述 2. 方案一:使用git 3. 方案二:镜像站 4. 方案三:高速下载工具(变体及自定义代码) 4.1 aria2 4.2 自定义代码

weixin_43178406的博客 17万+

自然语言处理在智能客服系统中的应用

引言与背景 1.1 书籍的目的和内容概述 《自然语言处理在智能客服系统中的应用》旨在探讨自然语言处理(NLP)技术在智能客服系统中的应用,帮助读者理解NLP的核心概念及其在解决实际业务问题中的关键作用。随着人工智能技术的快速发展,自然语言处理成为构建智能客服系统的核心模块之一。本书将深入解析NLP

AI天才研究院 968

mysql 子查询分组_mysql之子查询与分组查询

有时候需要对查询结果进行分组,以便于我们对分组后的数据进行计算,可以使用数据分组操作数据分组查询group by需要注意的是group by只是创建分组、并不能保证分组里面的数据排序。如果需要排序,可以使用order bygroup by字句必须出现在where字句之后,order by之句之前来看下分组实例,我指定了两个列,列名为accmplish_num是我想要分组的字段,而别名为num的字...

weixin_33699211的博客 1280

Agisoft Metashape 基于RTK技术的无人机航测免像控技术流程

利用无人机进行航空摄影测量,其使用方便、快速获得成果,已经是测绘行业外业生产的主要方式。RTK定位系统的出现,其厘米级的定位系统,使得航测无人机在作业时,能够准确获取拍照时的GPS位置,能够大量减少像控点,即使不使用像控点也能满足规范对精度的要求。可以有效解决特殊地形(如山川、峡谷、河流、沼泽、水库等)外业人员很难布设像控点的情况。

penglu366366的博客 2188

MySQL分组查询和子查询

分组的使用方式:分组查询是为了将数据分成不同的组,然后对每组分别处理,对每组的数据做统计,所以一般都要配合聚集函数来使用。如果不做统计,单纯的分组是没有意义的,单纯分组会返回每组的第一条数据。我们应该配合聚集函数使用分组,同时注意在聚集结果之前添加分组名称,不然不知道统计结果属于哪一组。语法:关键字group by 后面跟上要分组的字段。举例:select 班级,avg(年龄) form 表名 group by 班级;

m0_57188252的博客 589

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MySQL分组查询,多表查询和子查询

MySQL分组查询,多表查询和子查询

2302_80908313的博客 1167

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

mysql分组查询多列的和_MySQL 子查询和分组查询

概述子查询是SQL查询中的重要一块,是我们基于多表之间进行数据聚合和判断的一种手段,使得我们的处理复杂数据更加的便捷,这一节我们主要来了解一下子查询。先做一下数据准备,这边建立三张表:班级、学生、毕业成绩表,用于后面的操作:drop database if exists `Helenlyn_Class`;create database `Helenlyn_Class`;/*班级表*/DROP TA...

weixin_42275078的博客 529

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mysql 子查询 group by_mysql中的分组查询(group by)和子查询

准备两个关联的表1.CREATE DATABASE Qifengbaozi;USE Qifengbaozi;CREATE TABLE Yihaodian/*假设这是一号店的一上午的营业额*/(f_id INT NOT NULL AUTO_INCREMENT,f_name NVARCHAR(60) NOT NULL ,f_price INT NOT NULL,...

weixin_42535461的博客 619

mysql分组查询和子查询语句_MySQL(八)子查询和分组查询

一、子查询1、子查询(subquery):嵌套在其他查询中的查询。例如:select user_id from usertable where mobile_no in (select mobile_no from mobile where mobile_id = '10086');这条SQL语句中,括号内为从mobile表汇总检索mobile_id为10086的所有行中的mobile_no列,括...

weixin_42469243的博客 194

oracle查询分组的组数,oracle 组函数、分组查询、子查询和RowNum

一、组函数组函数,也叫聚合函数。用来对一组值进行运算,并返回单个值。COUNT(*|列名) 统计行数AVG(数值类型列名) 平均值SUM(数值类型列名) 求和MAX(列名)   最大值MIN(列名)   最小值组函数都会忽略null值select count(*) from emp; 二、分组查询-- group by 进行分组-- 例,按部门进行分组,并统计部门的人数select deptno,...

weixin_36455562的博客 2057

sql中分组查询和子查询_SQL中的子查询

sql中分组查询和子查询 要在SQL中使用子查询(SQ),有两种方法: 将SQ视为记录源(如表)。 将SQ视为单个值。 无论哪种情况,SQ都是一个简单的SELECT查询,但用括号()包围。 在情况1中,SQ应该位于FROM子句中,或者有时可能放在In()命令中。 在情况2中,可以使用SQ代替其他任何返回值的项目(SELECT; WHERE; HAVING; GROUP BY;...

IT与开发人员的地盘 313

Mysql数据库3:分组查询、子查询、单行函数、事务、权限和安全

目录 1. Mysql分组查询 2. Mysql子查询 3. 单行函数 4. 事务 5. 权限与安全 1. Mysql分组查询 1、分组 group by # 统计每个部门有多少个员工 SELECT COUNT(*) AS number,edid FROM emp GROUP BY edid 2、演示group by和having # 统计每个部门的年龄最大者 SELECT MAX(age),emp.edid FROM emp GROUP BY emp.ed...

weixin_43498449的博客 221

分组查询和子查询练习

1、列出薪金高于在部门30工作的所有员工的姓名和薪金、部门名称。  • 确定所需要的数据表:    |- emp表:员工姓名和薪金;    |- dept表:部门名称;   • 确定已知的关联字段:    |- 雇员和部门关联:emp.deptno=dept.deptno第一步: 找出30工作的所有员工工资SELECT sal FROM emp WHERE deptno=30;第二步: 以

ShunXiangL的博客 1595

mysql分组查询和子查询语句_MySQL分组数据和子查询

分组数据创建分组mysql> SELECT vend_id,COUNT(*) AS num_prodsFROM productsGROUP BY vend_id;+---------+-----------+| vend_id | num_prods |+---------+-----------+| 1001 | 3 || 1002 | 2 ||...

weixin_30120049的博客 437

【(NOT)EXISTS子查询,利用SQL语言进行结果计算和聚集计算,利用SQL语言进行分组查询和分组过滤】

1.Select-From-Where语句中,Select子句后面不仅可以是列名,而且可以是一些计算表达式或聚集函数,表明在投影的同时直接进行一些运算。2.expr可以是常量,列名,或由常量,列名,特殊函数及算数运算符构成的算术运算符。:AQL可以将检索到的元组按照某一条件进行分类,具有相同条件值的元组划到一个组或一个集合中,同时处理多个组或集合的聚集运算。:若要对集合(及分组)进行条件过滤,即满足条件的集合、分组留下,不满足条件的集合、分组剔除。语义:子查询结果中有无元组存在。

forever_youyang的博客 266

MYSQL必知必会:分组查询和子查询

除了一些汇总函数之外,还可以根据字段进行分组,分组之后再进行数据的汇总或过滤等其他查询操作. 下面有张表t5,分别有id,name,subject,score四个字段. 1.分组过滤. 分组过滤是把一张表内的剩余的记录通过某个字段进行分组,关键词是group by.剩余的指的是:再分组过滤之前,我们可以先通过where过滤一部分记录.然后在进行分组操作. 先看下第一个例子. exam...

闭上左眼看世界的博客 1366

分组查询和子查询?

# 分组查询 /* 语法: select 列表 from 表 where 分组前筛选条件 group by 分组的字段 having 分组后的筛选条件 order by 排序的字段; 筛选 分组后: having group by后 having */ #...

专注编程和人工智能! 1012
上一篇: 数据的查询
下一篇: java使用JDBC连接数据库
海山的蓝
博客等级 码龄9年 36粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值