【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 操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。

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

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

相关文章

对接阿里asr和Azure asr

1&#xff1a;对接阿里asr 1.1&#xff1a;pom <dependency><groupId>com.alibaba.nls</groupId><artifactId>nls-sdk-recognizer</artifactId><version>2.2.1</version> </dependency>1.2&#xff1a;生成token package c…

【动态规划】两个数组的 dp 问题二

两个数组的 dp 问题 1.正则表达式匹配2.交错字符串3.两个字符串的最小ASCII删除和4.最长重复子数组 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1…

创客匠人对话:创始人IP如何进阶?掌握这三点实现高质量多次转化

我们邀请到老蒋创客圈第67期对话标杆直播连麦&#xff0c;我们邀请到【君儒文化】平台创始人彭君如老师。从去年12月份参加创客匠人的线下大课后&#xff0c;就果断加入陪跑&#xff0c;到今年7月份顺利拿到68w的发售大结果。 前面我们介绍了彭老师的传承、发心愿景&#xff0…

小程序体验版无法正常请求接口,开启 调试可以正常请求

在本地开发工具可以正常访问小程序&#xff0c;上传代码后打开体验版&#xff0c;界面无法请求接口&#xff0c;手机小程序打开调试模式可以正常访问。这可以查看下小程序后台是否设置了服务器域名以及业务域名 然后查看小程序开发工具 - 详情 - 项目配置 重新上传代码&#xf…

二叉树的层序遍历(含八道leetcode相关题目)

文章目录 二叉树层序遍历模板102. 二叉树的层序遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637. 二叉树的层平均值515. 在每个树行中找最大值429. N 叉树的层序遍历116. 填充每个节点的下一个右侧节点指针117. 填充每个节点的下一个右侧节点指针 II 二叉树层序遍历模板 …

240922-局域网内通过SSH与SFTP访问RHEL服务器

要通过SFTP&#xff08;安全文件传输协议&#xff09;在局域网内访问一台RHEL服务器&#xff0c;您需要确保以下步骤都已经正确完成&#xff1a; A. 在RHEL服务器上配置SFTP服务 RHEL默认通过sshd服务提供SFTP功能&#xff0c;SFTP使用SSH协议进行文件传输&#xff0c;因此需要…

【二等奖论文】2024年华为杯研赛D题成品论文(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 点击链接获取【2024华为杯研赛资料汇总】&#xff1a; https://qm.qq.com/q/jTIeGzwkSchttps://qm.qq.com/q/jTIeGzwkSc 题 目&#xff1a; 大数据驱动的…

基于Ambari搭建hadoop生态圈+Centos7安装教程(还没写完,等明天补充完整)

当我们学习搭建hadoop的时候&#xff0c;未免也会遇见很多繁琐的事情&#xff0c;比如很多错误&#xff0c;需要解决。在以后公司&#xff0c;也不可能让你一个一个搭建hadoop&#xff0c;成千上万的电脑&#xff0c;你再一个个搭建&#xff0c;一个个报错&#xff0c;而且每台…

WebGL颜色与纹理

WEBGL中的着色器变量包括以下种类&#xff1a; 属性变量&#xff08;Attribute Variables&#xff09;&#xff1a;这些变量用于接收从应用程序中传递的顶点数据&#xff0c;比如顶点位置和颜色&#xff0c;是只读的不可修改。统一变量&#xff08;Uniform Variables&#xff…

小红书自动化写文以及发文机器人

&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通 &#x1f601; 2. 毕业设计专栏&#xff0c;毕业季咱们不慌忙&#xff0c;几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…

[数据集][目标检测]红外微小目标无人机直升机飞机飞鸟检测数据集VOC+YOLO格式7559张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;7559 标注数量(xml文件个数)&#xff1a;7559 标注数量(txt文件个数)&#xff1a;7559 标注…

Java ETL - Apache Beam 简介

基本介绍 Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码&#xff0c;然后在多个批处理和流处理引擎上运行&#xff0c;如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道&…

DETR论文翻译与理解

DETR&#xff08;Detection with transformer&#xff09; DETR&#xff1a;End to End Object Detection with Transformer 论文链接&#xff1a;2005.12872 (arxiv.org) 参考视频&#xff1a;https://www.bilibili.com/video/BV1GB4y1X72R/?spm_id_from333.788&vd_…

硬件工程师笔试面试——开关

目录 11、开关 11.1 基础 开关原理图 开关实物图 11.1.1 概念 11.1.2 常见的开关类型及其应用 11.2 相关问题 11.2.1 开关的工作原理是什么? 11.2.2 在设计一个电子系统时,如何选择最适合的开关类型? 11.2.3 不同类型的开关在实际应用中有哪些优势和局限性? 11.…

爵士编曲:爵士鼓编写 爵士鼓笔记 底鼓和军鼓 闭镲和开镲 嗵鼓

底鼓和军鼓 底鼓通常是动的音色&#xff0c;军鼓通常是大的音色。 “动”和“大”构成基础节奏。“动大”听着不够有连接性&#xff0c;所以可以加入镲片&#xff01; 开镲 直接鼓棒敲击是开镲音色 闭镲 当脚踩下踏板&#xff0c;2个镲片合并&#xff0c;然后用鼓棒敲击&am…

java(3)数组的定义与使用

目录 1.前言 2.正文 2.1数组的概念 2.2数组的创建与初始化 2.2.1数组的创建 2.2.1数组的静态初始化 2.2.2数组的动态初始化 2.3数组是引用类型 2.3.1引用类型与基本类型区别 2.3.2认识NULL 2.4二维数组 2.5数组的基本运用 2.5.1数组的遍历 2.5.2数组转字符串 2.…

面向对象程序设计——set容器の简析

1.set的介绍 • 序列式容器和关联式容器 • 我们已经接触过STL中的部分容器如&#xff1a;string、vector、list、deque、array、forward_list等&#xff0c;这些容器统称为序列式容器&#xff0c;因为逻辑结构为线性序列的数据结构&#xff0c;两个位置存储的值之间⼀般没有紧…

图片马赛克处理(Java)

1.需求 给图片的指定区域打码给整张图片打码马赛克方格取色支持中心点取色和随机取色马赛克支持灰度处理 2.源码 package com.visy.utils;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOE…

(k8s)Kubernetes部署Promehteus

转载&#xff1a;Kubernetes&#xff08;k8s&#xff09;部署Promehteus 一、概述 在1.8版本以后heapster由metrics-server替代&#xff1b;从k8s的v1.11版本开始已经全面转向以Prometheus为核心的新监控体系架构&#xff1b;kube-prometheus 中包含了 prometheus 监控所用到的…

pg入门18—如何使用pg gis

1. 下载postgre gis镜像 2. 运行镜像 docker run -p 15432:5432 -d -e POSTGRES_PASSWORDAb123456! postgis/postgis:12-3.4-alpine 3. 使用gis # 进入容器&#xff0c;登录pgdocker exec -it bash# 登录数据库psql -U postgres# 创建数据库CREATE DATABASE mygeotest;# 使用…