当前位置: 首页 > news >正文

【MYSQL】聚合查询、分组查询、联合查询

目录

  • 聚合查询
    • 聚合函数
      • count()
      • sum()
      • avg()
      • max()和min()
      • 总结
  • 分组查询
    • group by 子句
    • having 子句
  • 联合查询
    • 笛卡尔积
    • 内连接
    • 外连接
    • 自连接
    • 子查询
      • 单行子查询
      • 多行子查询
      • from子句使用子查询
  • 合并查询

聚合查询

聚合查询就是针对表中行与行之间的查询。

聚合函数

count()

count(列名):查询当前列下面有多少条数据。

select count(*) from 表名;#查询当前表有多少行
select count(列名) from 表名;#查询该列有多少行
  • count(1),里面加个数字常量也可以达到count(*)的效果,推荐写count(*)。
  • 使用count(列名)查询到null时不算入行数。

sum()

把查询到的结果相加。

select sum(列名) from 表名;#将该列所有值相加
  • 必须是数字,不是数字会报警告没结果。
  • 使用该函数会将null不计算,不会出现加上null和为null的结果。

avg()

求查询到结果的平均值。

select avg(列名/表达式) from 表名;#将该列所有值的平均数
  • 必须是数字,不是数字会报警告没结果。
  • 使用该函数会将null那行不计算,比如1,2,null平均值为(1 + 2)/ 2 = 1.5000。

max()和min()

分别返回查到的最大值和最小值。

select max(列名) from 表名;#返回该列最大值
select min(列名) from 表名;#返回该列最小值
  • 必须是数字,不是数字会报警告没结果。
  • null不参与。

总结

函数说明
count (列名)返回查询到的数据的 数量
sum(列名)返回查询到的数据的 总和,不是数字没有意义
avg(列名)返回查询到的数据的 平均值,不是数字没有意义
max(列名)返回查询到的数据的 最大值,不是数字没有意义
min(列名)返回查询到的数据的 最小值,不是数字没有意义

分组查询

group by 子句

查询(select) 中使用 group by子句可以对指定列进行分组查询。
功能就是将查询到的结果中 group by 子句后的列完全相同的合并在一起。

select 列名.... from 表名 group by 列名1, 列名2;


group by 子句后也可以跟 order by子句排序。

having 子句

group by 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 where语句,而需要用having。
因为分组结果在结果集中是临时表,不是真是的数据,where处理的事是真实数据。

select 列名.... from 表名 group by 列名1, 列名2 having 条件;

联合查询

联合查询就是将多张表联合起来查询,将需要的信息一起取出来。

笛卡尔积

笛卡尔积就是将表中每行与其他表的行进行全排列。

select .... from1,2;

例如:

  • 当使用笛卡尔积的表含有主外键查询时,因为是全排列,必然会产生无效数据,我们就可以使用条件查询,但是必须要使用 表名.列名。

  • 通过指定列查询精简结果集时也需要使用 表名.列名。

  • 可以通过给表名起别名来精简SQL语句。

内连接

两种写法:

select 列名 from1 as 别名1,表2 as 别名2 where 条件 and 其他条件;select 列名 from1 as 别名1 join2 as 别名 on 条件 and 其他条件; 

外连接

外连接分为左外连接和右外连接。
如果联合查询,join 左侧的表完全显示我们就说是左外连接;
join右侧的表完全显示我们就说是右外连接。

select 列名 from1 as 别名1 right join2 as 别名2 on 条件;#右外连接,表2全显示select 列名 from1 as 别名1 left join2 as 别名2 on 条件;#左外连接,表1全显示

自连接

自连接是指在同一张表连接自身进行查询。
但是必须要对表进行起不同的别名。

select 列名 from 表名 as 别名1,表名 as 别名2 where 条件 and 其它条件;select 列名 from 表名 as 别名1 join 表名 as 别名2 on 条件 and 其它条件;

子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。

select 列名 from 表名 where= (select语句 );#例子

单行子查询

作为条件的子查询语句返回值只有一行数据。

多行子查询

作为条件的子查询语句返回值有多行行数据。

  • 可以使用in来处理:
  • 可以使用多列包含:
    将where条件括号中与返回值一一进行比较
  • 使用[not] exists关键字
select 列名 from 表名 where exists (select语句);

后面查询语句返回结果集为空就不执行前面的查询语句,反之不为空执行。

from子句使用子查询

在from子句中使用子查询:子查询语句出现在from子句中。
把一个子查询当做一个临时表使用。

合并查询

为了合并多个select的执行结果,可以使用集合操作符 union,union all。
使用union 和union all时,前后查询的结果集中,字段需要一致。

  • union操作符用于取得两个结果集的并集。当使用该操作符时,
    会自动去掉结果集中的重复行。
  • union all 操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。

相关文章:

【MYSQL】聚合查询、分组查询、联合查询

目录 聚合查询聚合函数count()sum()avg()max()和min()总结 分组查询group by 子句having 子句 联合查询笛卡尔积内连接外连接自连接子查询单行子查询多行子查询from子句使用子查询 合并查询 聚合查询 聚合查询就是针对表中行与行之间的查询。 聚合函数 count() count(列名)&a…...

使用IDA Pro动态调试Android APP

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 关于 android_server android_server 是 IDA Pro 在 Android 设备上运行的一个调试服务器。 通过在 Android 设备上运行android_server,IDA Pro …...

JS中的for...in和for...of有什么区别?

你好,我是沐爸,欢迎点赞、收藏、评论和关注。 在 JavaScript 中,for...in 和 for...of 是两种用于遍历数组(或其他可迭代对象)的循环语句,但它们之间存在显著的差异。 一、遍历数组 for…in const arr …...

【C++篇】引领C++模板初体验:泛型编程的力量与妙用

文章目录 C模板编程前言第一章: 初始模板与函数模版1.1 什么是泛型编程?1.1.1 为什么要有泛型编程?1.1.1 泛型编程的优势 1.2 函数模板的基础1.2.1 什么是函数模板?1.2.2 函数模板的定义格式1.2.3 示例:通用的交换函数输出示例&am…...

在react中 使用redux

1.安装redux npm install reduxjs/toolkit react-redux 2.创建切片模块化数据 在Src目录下创建store目录,创建moude目录 创建tab.js import { createSlice } from reduxjs/toolkit; const tabSlice createSlice({name: tab,initialState: {Collapse: false,},re…...

计算机毕业设计python+spark知识图谱房价预测系统 房源推荐系统 房源数据分析 房源可视化 房源大数据大屏 大数据毕业设计 机器学习

《PythonSpark知识图谱房价预测系统》开题报告 一、研究背景与意义 随着城市化进程的加速和房地产市场的不断发展,房价成为影响人们生活质量的重要因素之一。准确预测房价不仅有助于政府制定科学的房地产政策,还能为开发商提供市场参考,同时…...

Spring-bean的生命周期-终篇

阶段8:Bean属性设置阶段 属性设置阶段分为3个小的阶段 实例化后阶段Bean属性赋值前处理Bean属性赋值 实例化后阶段 这里也有spring给我们预留了扩展,就是实现InstantiationAwareBeanPostProcessor的postProcessAfterInstantiation方法,开发…...

Kotlin 枚举和 when 表达式(六)

导读大纲 1.1 表示和处理选择: Enums和when1.1.1 声明枚举类和枚举常量1.1.2 使用 when 表达式处理枚举类 1.1 表示和处理选择: Enums和when 在本节中,我们将以在 Kotlin 中声明枚举为例,介绍 when 结构 when可以被视为比 Java 中 switch 结构更强大、更常用的替代品 1.1.1 …...

数字范围按位与

优质博文:IT-BLOG-CN 题目 给你两个整数left和right,表示区间[left, right],返回此区间内所有数字 按位与 的结果(包含left、right端点)。 示例 1: 输入:left 5, right 7 输出:…...

WebRTC编译后替换libwebrtc.aar时提示找不到libjingle_peerconnection_so.so库

Loading native library: jingle_peerconnection_so 问题原因:编译的时候只编译了armeabi-v7a的版本,但是应用程序是arm64-v8a,所以无法运行 解决方法:更新编译脚本,加上arm64-v8a进行编译 ./tools_webrtc/android/bu…...

Nature Electronics |无感佩戴的纤维基电子皮肤(柔性半导体器件/柔性健康监测/电子皮肤/柔性传感/纤维器件)

英国剑桥大学Yan Yan Shery Huang课题组,在《Nature Electronics 》上发布了一篇题为“Imperceptible augmentation of living systems with organic bioelectronic fibres”的论文,第一作者为王文宇博士(Wenyu Wang),论文内容如下: 一、 摘要 利用电子技术对人类皮肤和…...

深入剖析Docker容器安全:挑战与应对策略

随着容器技术的广泛应用,Docker已成为现代应用开发和部署的核心工具。它通过轻量级虚拟化技术实现应用的隔离与封装,提高了资源利用率。然而,随着Docker的流行,其安全问题也成为关注焦点。容器化技术虽然提供了良好的资源隔离&…...

后端技术打怪升级之路

记录后端技术打怪升级之路,如下是个人总记的主要技术栈,仅供参考! 备注: 同名文章一同步发表于个人网站及微信公众号 个人网站 工藤新一的技术小窝...

Leetcode 3296. Minimum Number of Seconds to Make Mountain Height Zero

Leetcode 3296. Minimum Number of Seconds to Make Mountain Height Zero 1. 解题思路2. 代码实现 题目链接:3296. Minimum Number of Seconds to Make Mountain Height Zero 1. 解题思路 这一题的思路的话我们采用的是一个二分法的思路,找到一个最大…...

计算机毕业设计之:基于深度学习的路面检测系统(源码+部署文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

测试面试题:接口自动化测试流程?

1、测试用例编写:根据接口的需求和功能,编写相应的测试用例。测试用例应包括正常、边界和异常等各种情况下的测试。 2、准备测试数据:根据测试用例的要求,准备相应的测试数据。数据可以通过手动输入、数据库查询、文件导入等方式进…...

Golang面试题

在Golang(也称为Go语言)工程师的面试中,可能会遇到各种技术性和概念性的问题。 一、基础部分 Golang 中 make 和 new 的区别? 共同点:两者都用于分配内存。不同点: make 专为 slice、map 和 channel 设计,返回初始化后的(非零)值。new 分配内存并返回指向该内存的指针…...

《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)

目录 一、最终实现后,效果如下。 (1)简单介绍本游戏项目(待完善) (2)运行效果图(具体大家自己可以试) 初始运行情况。 手动更换背景图。 通过子弹攻击敌机,累…...

计算机毕业设计 基于 Hadoop平台的岗位推荐系统 SpringBoot+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

【数据结构与算法】LeetCode:二分查找

文章目录 二分查找二分查找搜索插入位置 (Hot 100)x 的平方根搜索二维矩阵(Hot 100)在排序数组中查找元素的第一个和最后一个位置 (Hot 100)搜索旋转排序数组 (Hot 100)寻找旋转排序…...

智界V9,50万的豪华MPV来了

鸿蒙智行旗下首款旗舰MPV——智界V9正式亮相了。目前的高端MPV市场格局跟之前有很大改变,尤其是四十万之上这个段位,以前基本被几家合资老牌霸占,如今本土的科技企业和新势力一窝蜂杀进来。智界V9的起步价为38.98万,高端款51.98万…...

【仅限前500名设计师获取】Midjourney双色调调色板生成器(含17组经Adobe Color验证的高转化配色矩阵)

更多请点击: https://codechina.net 第一章:Midjourney双色调调色范式的底层逻辑与设计价值 双色调(Duotone)并非简单叠加两种颜色,而是基于人眼视觉感知的非线性响应特性,在Midjourney中构建的一套语义化…...

告别claude code封号烦恼使用taotoken稳定密钥与聚合接口的配置指南

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 告别Claude Code封号烦恼使用Taotoken稳定密钥与聚合接口的配置指南 对于依赖Claude Code进行编程辅助的开发者而言,直…...

虚实融合新纪元:UWB物理锚点 vs 镜像视界数维空间无感定位

虚实融合新纪元:UWB物理锚点 vs 镜像视界数维空间无感定位虚实融合产业正从“物理锚点绑定”迈向“数维空间原生映射”新纪元。UWB以基站与标签构建刚性物理坐标体系,是虚实同步的硬件依赖范式;镜像视界浙江科技有限公司以纯视觉AI重构空间感…...

RetinaFace实战:10个技巧教你高效检测和提取人脸

RetinaFace实战:10个技巧教你高效检测和提取人脸 【免费下载链接】retinaface RetinaFace: Deep Face Detection Library for Python 项目地址: https://gitcode.com/gh_mirrors/re/retinaface RetinaFace是一个基于深度学习的Python人脸检测库,专…...

告别无效熬夜!10 款 AI 毕业论文工具实测,解锁高效通关路径

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 打开 Word 文档盯着空白页面发呆,开题报告改了五版还是被导师打回,文献综述翻遍知网也理不…...

Leetcode 思路-105.从前序与中序序列构造二叉树

105.从前序与中序序列构造二叉树给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。1.简单思路根据先序遍历根节点在前的特点,取到根节点后&a…...

解锁AMD Ryzen潜力:SMUDebugTool硬件调试完全指南

解锁AMD Ryzen潜力:SMUDebugTool硬件调试完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…...

深入解析Godot PCK解包技术:从二进制黑盒到可编辑资源的完整指南

深入解析Godot PCK解包技术:从二进制黑盒到可编辑资源的完整指南 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 还在为Godot引擎生成的PCK文件无法访问而烦恼吗?想要深入分析…...

GaussDB密码安全实战:从默认配置到企业级加固的完整操作指南

GaussDB密码安全实战:从默认配置到企业级加固的完整操作指南 接手一套新的GaussDB生产环境时,密码安全往往是DBA最容易忽视却又最致命的薄弱环节。去年某金融企业数据泄露事件的根源,正是由于沿用默认的MD5加密算法导致数万客户凭证被彩虹表破…...