MySQL(数据分组-GROUP BY、HAVING子句、联合查询、查询结果限定、通配符)

 

目录

分组:

GROUP BY子句的真正作用:

分组函数:

分组函数重要规则:

HAVING子句

HAVING与WHERE的区别

MySQL 多行数据合并 GROUP_CONCAT

联合查询

查询结果限定

MySQL中的通配符:


分组:

把该列具有相同值的多条记录当成一组记录处理,最后只输出一条记录。

GROUP BY子句的真正作用:

在于与各种聚合函数配合使用。它用来对查询出来的数据进行分组。

分组函数:

    分组函数忽略空值。
    结果集隐式按升序排列,如果需要改变排序方式可以使用Order by 子句。

分组函数重要规则:

    如果使用了分组函数,或者使用GROUP BY 的查询:出现在SELECT列表中的字段,要么出现在组合函数里,要么出现在GROUP BY 子句中。

    GROUP BY 子句的字段可以不出现在SELECT列表当中。

    使用集合函数可以不使用GROUP BY子句,此时所有的查询结果作为一组。

HAVING子句

        ——数据分组--限定组的结果

        HAVING子句用来对分组后的结果再进行条件过滤。

HAVING与WHERE的区别

        WHERE是在分组前进行条件过滤

        HAVING子句是在分组后进行条件过滤

        WHERE子句中不能使用聚合函数

        HAVING子句可以使用聚合函数。


    分组函数的错误用法:
        不能在WHERE 子句中限制组.
        限制组必须使用HAVING 子句.
        不能在WHERE 子句中使用组函数


MySQL 多行数据合并 GROUP_CONCAT

语法: GROUP_CONCAT(expr)

    示例:fruits表按s_id,将供应水果名称合并为一行数据
    mysql> select s_id, group_concat(f_name)
     -> from fruits
     -> group by s_id;

使用 GROUP_CONCAT()函数必须对源数据进行分组,否则所有数据会被合并成一行

联合查询

-- 中国或美国城市信息

SELECT * FROM city
WHERE countrycode IN ('CHN' ,'USA');
SELECT * FROM city WHERE countrycode='CHN'
UNION ALL
SELECT * FROM city WHERE countrycode='USA'

说明:一般情况下,我们会将 IN 或者 OR 语句 改写成 UNION ALL,来提高性能
UNION   去重复
UNION ALL 不去重复

查询结果限定

SELECT语句最后可以用LIMLT限定查询结果返回的起始记录和总数量(MySQL特有)
语法格式:

SELECT … LIMIT offset_start,row_count;

offset_start:第一个返回记录行的偏移量。默认为0.
row_count:要返回记录行的最大数目。



例子:
SELECT * FROM TB_EMP LIMIT 5;/*检索前5个记录*/
SELECT * FROM TB_EMP LIMIT 5,10;/*检索记录行6-15*/


MySQL中的通配符:

MySQL中的常用统配符有三个:

   %:用来表示任意多个字符,包含0个字符

   _ : 用来表示任意单个字符

   escape:用来转义特定字符

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

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

相关文章

DDOS攻击成本高昂,与防御成本紧密相连110.42.2.1

ddos攻击成本高吗,与防御成本高的关系是什么?在数字时代,分布式拒绝服务(DDOS)攻击已经成为企业和组织面临的一种常见威胁。这种攻击通过利用网络资源,对目标系统或服务进行大规模、协调一致的攻击,导致目标系统崩溃或无法正常运…

AT89C51单片机实现单片机串口互动(中断方式,单片机--单片机,应答)

说一下功能:客户机发送0x01到服务机 2服务单片机应答0xf2到客户机 3客户机接收到0xf2,发送信息153432这6个数字到服务机 4client发送完信息后发送0xaa结束通信 5server接收到0xaa后回复0xaa结束通信,从此老死不相往来 看代码: //发送端…

C语言 ——函数指针变量

1、概念: 数组指针 - 是指针-是指向数组的指针,是存放数组地址的指针 函数指针 - 是指针 是指向函数的指针 - 是存放函数地址的指针!! 如上所示,函数也是具有地址的,而存放函数地址的指针变量成为函数指针变量。 而有如上所示&a…

构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

Cadvisor产品简介 Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。 接着上一篇来继续 部署Cadvisor 被监控主机上部署Cadvisor容器…

【Kafka】1.Kafka简介及安装

目 录 1. Kafka的简介1.1 使用场景1.2 基本概念 2. Kafka的安装2.1 下载Kafka的压缩包2.2 解压Kafka的压缩包2.3 启动Kafka服务 1. Kafka的简介 Kafka 是一个分布式、支持分区(partition)、多副本(replica)、基于 zookeeper 协调…

Qt5开发视频播放器

一、播放器界面UI设计 控件对象名位置(坐标点)对象名称组件名称备注Widget(0, 0, 809, 572)WidgetQWidgetlabellabelQLabel播放窗口label_2label_2QLabelvoice_controlvoice_controlQSlider音量滑动条btn_openbtn_openQPushButton打开文件按钮label_4la…

在vue3中定义组件的5种方式

在vue3中定义组件的5种方式 Vue 正在不断发展,目前在 Vue3 中定义组件的方法有多种。从选项式到组合式再到类API,情况截然不同。本文将会定义一个简单的组件并使用所有可用的方法重构它。 选项式 这是在 Vue 中声明组件的最常见方法。从 Vue1 就开始存…

[RISCV] Generate Debian distribution

获取keyring $ wget http://mirrors.ustc.edu.cn/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2023.02.01~deb11u1_all.deb安装keyring $ sudo dpkg -i debian-ports-archive-keyring_2023.02.01~deb11u1_all.deb安装debootstrap $ sudo…

ThreadLLocal的学习

ThreadLocal的学习 ThreadLocal的学习1.ThreadLocal是什么?2.ThreadLocal的数据结构Java的四种引用类型 3.ThreadLocal为什么会出现内存泄露?既然会出现内存泄露为什么Entry的key还要使用弱引用?如何避免内存泄露? ThreadLocal的学…

最新版本2023UI千月影视APP源码 开源完美版前后端完美匹配 后端基于ThinkPHP框架

最新版本的2023UI千月影视APP源码是一款开源的完美版应用程序,具备前后端完美匹配的特点。该应用的后端开发基于ThinkPHP框架,这是一个广泛使用的PHP开发框架,具有稳定性和安全性方面的优势。 2023UI千月影视APP是一款提供电影、电视剧、综艺…

ES6 解构

解构的语法 … {} 解构的语法中,...(展开运算符)和 {}(对象字面量)扮演着不同的角色。 ...(展开运算符): 在解构中,... 被用作展开运算符,用于将数组或对象中…

深入理解MySQL表的操作和管理

MySQL是一种广泛使用的关系型数据库管理系统,用于存储和管理大量结构化数据。在MySQL中,表是数据的基本组织单位,对表的操作和管理能力对于数据库的性能和数据完整性至关重要。本文将深入讨论MySQL表的操作和管理,包括创建表、修改…

Clickhouse学习系列——一条SQL完成gourp by分组与不分组数值计算

笔者在近一两年接触了Clickhouse数据库,在项目中也进行了一些实践,但一直都没有一些技术文章的沉淀,近期打算做个系列,通过一些具体的场景将Clickhouse的用法进行沉淀和分享,供大家参考。 首先我们假设一个Clickhouse数…

智能合约 -- 常规漏洞分析 + 实例

1.重入攻击 漏洞分析 攻击者利用合约漏洞,通过fallback()或者receive()函数进行函数递归进行持续取钱。 刚才试了一下可以递归10次,貌似就结束了(version: 0.8.20)。 直接看代码: 银行合约:有存钱、取钱、查看账户余额等函数。攻击合约:…

第04天 Spring是如何解决循环依赖的

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:每天一个知识点 ✨特色专栏&#xff1a…

【VUE】7、VUE项目中集成watermark实现页面添加水印

在网站浏览中,常常需要网页水印,以便防止用户截图或录屏暴露敏感信息后,方便追踪用户来源。 1、安装 watermark 在 package.json 文件 dependencies 节点增加 watermark-dom 依赖 "watermark-dom": "2.3.0"然后执行命…

Petrel解释二维浅地层数据

Petrel是斯伦贝谢开发的一款地质解释和建模软件,有点像地理信息系统的ArcGIS,主要用于数据分析和展示。它不是用来处理原始数据的,而是集成各种处理后的结果数据进行特征分析和目标拾取。当然,它也能读取原始数据,比如…

Xilinx DDR3学习总结——2、MIG exmaple直接上板

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx DDR3学习总结——2、MIG exmaple直接上板查看初始化状态 前言修改内容上板 前言 上一篇,我们生成了一个example,example的测试激励看起来都比…

Vue 3.0中的Treeshaking?

1.treeshaking是什么? Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术,专业术语叫 Dead code elimination 简单来讲,就是在保持代码运行结果不变的前提下,去除无用的代码 如果把代码打包比作制作蛋糕&#…

5. 服务发现

当主机较少时,在抓取配置中手动列出它们的IP地址和端口是常见的做法,但不适用于较大规模的集群。尤其不适用使用容器和基于云的实例的动态集群,这些实例经常会变化、创建或销毁的情况。 Prometheus通过使用服务发现解决了这个问题&#xff1…