十二、MySQL(DQL)分组/排序/分页查询如何实现?
总括
select 字段列表 from 表名 [where 条件] (group by)/(order by)/(limit) 分组字段名
分组查询
1、分组查询
(1)基础语法:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组之后的过滤条件]

(2)注意事项:

(3)理解:
select后的“字段列表”是由from后的参数决定的,where的执行时间在分组操作之前,having的执行时间在分组操作之后。
执行时间:where>分组操作>having
# 先根据“where”后参数,对表格进行初始过滤,得到新表格1,
# 再根据“group by”后参数对新表格1进行分组,根据分组结果得到一个新的数据类型,
# 将这个新的数据类型作为传入参数,传入having后的聚合函数,
新的数据类型

2、实际操作:
(1)根据性别分组,并统计男女员工的数量
# 1、根据性别分组,并统计男员工数量,以及女员工数量
select count(*) from things group by type;
select type,count(*) from things group by type;


(2)根据性别分组,并统计男性员工和女性员工的平均年龄
# 2、根据性别分组,并统计男性员工和女性员工的平均年龄
select type,avg(age) from things group by type;

(3)查询年龄大于等于20岁的员工,再根据性别分组,最后得到员工数量大于3的性别
# 3、查询年龄大于等于20岁的员工,再根据性别分组,最后得到员工数量大于3的性别
select type,count(*) from things where age>=20 group by type having count(*)>=3;

排序查询
1、基础语法:
先根据字段1进行排序,对于相同值,再根据字段2进行排序。
select 字段列表 from 表名 order by 字段1 排序方式,字段2 排序方式2,……
其中,排序方式分为ASC(升序,默认)和DESC(降序)两种

2、实际操作:
先根据time进行排序,对于time相同的数据,再根据age进行排序;
select * from people order by time,age;

分页查询
1、基础语法:
select 字段列表 from 表名 limit 起始索引,查询记录数;

2、实际操作:
(1)初始表格:

(2)起始索引为0,每页显示5条数据
select * from people limit 0,5;
select * from people limit 8,5; # 起始索引是8,也就代表起始数据是第9条数据


实例操作
初始表格:

操作:
# 查询年龄为19和20岁的男性
select * from people where type='男' and age in(19,20);# 查询性别为男,并且年龄在20~40岁之间,并且时间在2010~2025之间的员工
select * from people where type='男' and (time between 2010 and 2025) and (age between 20 and 40);# 统计员工表中,年龄小于等于40岁,男性员工和女性员工的数量
select type,count(*) from people where age<=40 group by type;# 查询所有年龄小于35岁员工的姓名和年龄,并对查询结果进行升序排列,如果年龄相同,则按照时间进行排序。
select name,age,time from people where age<35 order by age,time;# 查询性别为男,且年龄在20~45之间前五个员工的信息,对查询结果按照升序排列,年龄相同按照时间排序
select * from people where type='男' and age between 20 and 45 order by age,time limit 0,5;





相关文章:
十二、MySQL(DQL)分组/排序/分页查询如何实现?
总括 select 字段列表 from 表名 [where 条件] (group by)/(order by)/(limit) 分组字段名 分组查询 1、分组查询 (1)基础语法: select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组之后的过滤条件] (…...
设计模式概念学习
创建类型 单例模式 饿汉 构建时就创建 懒汉 单线程-访问到的时候才创建多线程-低效率 做法:加锁->若未创建则创建->获取资源->解锁 缺点:效率低,每次访问之前都要加锁,资源创建之后不能被同时被多个线程访问多线程-…...
Spring MVC 五 - DispatcherServlet初始化过程(续)
今天的内容是SpringMVC的初始化过程,其实也就是DispatcherServilet的初始化过程。 Special Bean Types DispatcherServlet委托如下一些特殊的bean来处理请求、并渲染正确的返回。这些特殊的bean是Spring MVC框架管理的bean、按照Spring框架的约定处理相关请求&…...
day36:网编day3,TCP、UDP模型
下载: #include <myhead.h>#define ERR(s) do\ {\fprintf(stderr,"__%d__",__LINE__);\perror(s);\ }while(0) #define PORT 69 #define IP "192.168.115.184"int do_download(int cfd,struct sockaddr_in sin); //int do_upload(); int…...
MySQL——MySQL的基础操作部分
使用命令行登录 mysql -u root -p 直接敲击回车后输入密码即可: 当看到出现“mysql>“的符号之后,就表示已经进入到了MySQL系统中,就可以输入My…...
编译OpenWrt内核驱动
编译OpenWrt内核驱动可以参考OpenWrt内部其它驱动的编写例程,来修改成自己需要的驱动 一、OpenWrt源代码获取与编译 1.1、搭建环境 下载OpenWrt的官方源码: git clone https://github.com/openwrt/openwrt.git1.2、安装编译依赖项 sudo apt update -…...
文件上传漏洞-upload靶场5-12关
文件上传漏洞-upload靶场5-12关通关笔记(windows环境漏洞) 简介 在前两篇文章中,已经说了分析上传漏的思路,在本篇文章中,将带领大家熟悉winodws系统存在的一些上传漏洞。 upload 第五关 (大小写绕过…...
Redis功能实战篇之Session共享
1.使用redis共享session来实现用户登录以及token刷新 当用户请求我们的nginx服务器,nginx基于七层模型走的事HTTP协议,可以实现基于Lua直接绕开tomcat访问redis,也可以作为静态资源服务器,轻松扛下上万并发, 负载均衡…...
leetcode235. 二叉搜索树的最近公共祖先(java)
二叉搜索树的最近公共祖先 题目描述递归 剪枝代码演示: 上期经典 题目描述 难度 - 中等 LC235 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q…...
2023物联网新动向:WEB组态除了用于数据展示,也支持搭建业务逻辑,提供与蓝图连线和NodeRed规则链类似的可视化编程能力
前言 组态编辑在工业控制、物联网场景中十分常见,越来越多的物联网平台也把组态作为一项标配功能。 物联网产业链自下往上由“端 - 边 - 管 - 云 -用”多个环节构成,组态通常是用于搭建数据展示类型的应用,而随着系统集成度越来越高&#x…...
react将文件转为base64进行上传
需求 将图片、pdf、word、excel等文件进行上传。图片、pdf等调接口A、word、excel等附件调接口B。接口关于文件是base64格式的参数 业务场景 上传资源,区分影像与附件 逻辑思路 使用原生input标签,typefile,进行上传上传后的回调&#x…...
生成式人工智能能否使数字孪生在能源和公用事业行业成为现实?
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 克服障碍,优化数字孪生优势 要实现数字孪生的优势,您需要数据和逻辑集成层以及基于角色的演示。如图 1 所示,在任何资产密集型行业(如能源和公用事业)中&…...
SpringBoot集成JWT token实现权限验证
JWTJSON Web Token 1. JWT的组成 JWTHeader,Payload,Signature>abc.def.xyz 地址:JSON Web Tokens - jwt.er 1.1 Header Header:标头。 两个组成部分:令牌的类型(JWT)和所使用的签名算法,经过Base64 Url编码后形成…...
算法通关村第11关【青铜】| 位运算基础
1.数字在计算机中的表示 原码、反码和补码都是计算机中用于表示有符号整数的方式。它们的使用旨在解决计算机硬件中的溢出和算术运算问题。 原码(Sign-Magnitude): 原码最简单,它的表示方式是用最高位表示符号位,0表示…...
无涯教程-Android - RadioGroup函数
RadioGroup类用于单选按钮集。 如果我们选中属于某个单选按钮组的一个单选按钮,它将自动取消选中同一组中以前选中的任何单选按钮。 RadioGroup属性 以下是与RadioGroup控制相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关…...
降噪音频转录 Krisp: v1.40.7 Crack
主打人工智能降噪服务的初创公司「Krisp」近期宣布推出音频转录功能,能对电话和视频会议进行实时设备转录。该软件还整合的ChatGPT,以便快速总结内容,开放测试版于今天上线。 随着线上会议越来越频繁,会议转录已成为团队工作的重…...
基于React实现:弹窗组件与Promise的有机结合
背景 弹窗在现代应用中是最为常见的一种展示信息的形式,二次确认弹窗是其中最为经典的一种。当我们在React,Vue这种数据驱动视图的前端框架中渲染弹窗基本是固定的使用形式。 使用方式:创建新的弹窗组件,在需要弹窗的地方引用并…...
docker使用(一)生成,启动,更新(容器暂停,删除,再生成)
docker使用(一) 编写一个 Dockerfile构建镜像构建失败构建成功 运行镜像运行成功 修改代码后再次构建请不要直接进行构建,要将原有的旧容器删除或暂停停止成功删除成功再次构建且构建成功! 要创建一个镜像,你可以按照以…...
用Qt自制一个小闹钟
小闹钟 功能 当按下启动按钮时,停止按钮可用,启动按钮不可用,闹钟无法设置,无法输入自定义内容 当按下停止按钮时,暂停播报,启动按钮可用,闹钟可以设置,可以输入自定义内容 .pro文…...
Vue2.0/Vue3.0使用xlsx+xlsx-style实现导出Excel文件
一、依赖导入 1、Vue2 Webpack构建的 npm i xlsx npm i xlsx-style npm i file-saver同时修改以下: 解决 Can’t resolve ‘./cptable’ in ‘…’ 的问题,在 vue.config.js 文件中加入该配置 module.exports {externals: {./cptable: var cptable}…...
Redis详解以应用场景
一、Redis简介 1.1 什么是Redis Redis Remote Dictionary Service(远程字典服务) 传统数据库:数据存储在磁盘,访问需要磁盘IO└── 速度慢,但数据持久化Redis:所有数据存储在内存└── 速度极快…...
在华为擎云L420上从源码编译ARM GCC 10.3,为Betaflight开发铺路
在华为擎云L420上构建ARM GCC 10.3工具链:Betaflight开发环境实战指南 当国产化硬件遇上开源飞控开发,技术探索的边界正在被不断拓展。华为擎云L420作为一款基于ARM64架构的笔记本电脑,为开发者提供了在国产平台上进行嵌入式开发的独特机会。…...
Microchip安卓配件开发平台:MCU与安卓系统高效协同实战指南
1. 项目概述:当单片机巨头拥抱安卓生态作为一名在嵌入式领域摸爬滚打了十几年的老工程师,我经历过从8位机到32位ARM,再到各种RTOS的变迁。但最近几年,一个趋势越来越明显:越来越多的智能设备,特别是那些需要…...
别再被ZIP伪加密骗了!一个Python脚本自动检测修复,解放你的双手
用Python自动化破解ZIP伪加密:从原理到实战工具开发 每次在CTF比赛中遇到ZIP伪加密题目,你是否也厌倦了手动用十六进制编辑器逐个修改字节的繁琐过程?作为参加过数十场CTF比赛的老兵,我深刻理解这种重复劳动的低效与痛苦。本文将带…...
金融机构 一般采用是机械硬盘还是固态硬盘
金融机构现在普遍采用的是以固态硬盘(SSD)为主、机械硬盘(HDD)为辅的混合架构。可以说,一个全面向全闪存(全SSD) 演进的趋势正在所有主流银行和券商中发生。可以看一个非常直观的例子࿱…...
论基于云原生数据库的企业信息系统架构设计
基于云原生数据库的企业架构随着云原生技术的全面普及,企业信息系统对架构的弹性伸缩、高可靠性、资源高效利用及敏捷迭代能力提出了更高要求。传统数据库存在的存储与计算耦合、扩展能力受限、运维成本高、故障恢复慢等痛点,已难以适配现代化企业的业务…...
RV1106开发板WiFi配置全攻略:从AP模式到STA模式,手把手教你搞定网络连接
RV1106开发板WiFi配置全攻略:从AP模式到STA模式,手把手教你搞定网络连接 刚拿到RV1106开发板时,最让人头疼的莫过于WiFi配置了。这块嵌入式开发板在网络连接上有着独特的配置逻辑,尤其是AP(接入点)和STA&am…...
cursor接入外部大模型教程!新手必看
一、接入前准备 在开始之前,请先登录你的大模型平台,这里使用 我自用的举例官网地址,创建并复制你的 API Key。 这里添加令牌,有名称和分组,简单举例,填入名称 cursor-claude, 一个key只能选一…...
Arduino步进电机控制:按键调速与定时器中断实现
1. 项目概述与核心需求解析最近在捣鼓一个自动化小装置,核心需求就是通过几个物理按键来控制步进电机的动作,比如正转、反转、加速、减速或者停止。这听起来像是很多创客项目、小型自动化设备或者教学演示里最基础的一环。我猜你可能是电子爱好者、学生&…...
NAFNet实战指南:无激活函数图像修复模型的深度解析与应用
NAFNet实战指南:无激活函数图像修复模型的深度解析与应用 【免费下载链接】NAFNet The state-of-the-art image restoration model without nonlinear activation functions. 项目地址: https://gitcode.com/gh_mirrors/na/NAFNet NAFNet(Nonline…...
