MySql - GROUP BY 和 HAVING关键字

本文主要针对GROUP BY 和 HAVING两个关键字进行分析

使用测试表如下:

   

测试前,只知道GROUP BY 这个关键字的作用是根据一个字段进行分组,去重。HAVING对分组设置条件。

具体分组规则,设置条件不清楚。

 

测试开始

首先

单独使用GROUP BY对 kecheng 字段进行分组:

SELECT * from a GROUP BY kecheng

执行sql,结果如下:

  

分析:

  根据 kecheng 字段分组,并去重了,去重规则为  kecheng  的第一条数据。

 

然后

加上HAVING,对分组进行设置条件:

  SELECT * from a GROUP BY kecheng HAVING fenshu > 80

执行sql,结果如下:

  

分析:

  本次结果相对于上次,少了一条数据

  张三   数学   75

  可以看出 HAVING 条件,是在 GROUP BY 分组后进行的筛选。

 

 

总结:

  GROUP BY,对一个字段进行去重(取第一条),分组, 

   HAVING  配合 GROUP BY 使用,对分组后的数据进行限制,可以使用聚合函数。

  

注:本贴具体测试情况没有贴出,只是写出了测试后的数据结果。

参考:https://blog.csdn.net/quinnnorris/article/details/71056445

https://www.cnblogs.com/lao-tang/p/6398577.html

转载于:https://www.cnblogs.com/JonMingrev/p/10144622.html

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

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

相关文章

javascript引擎工作原理

1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序。比方说,当你写了 var a 1 1; 这样一段代码,JavaScript引擎做的事情就是看懂&#…

浏览器缓存原理以及本地存储

作为一名前端工作人员,前端的缓存知识是必须掌握的,因为一个网站打开网页的速度直接关系到用户体验,用户粘度,而提高网页的打开速度有很多方面需要优化,其中比较重要的一点就是利用好缓存,缓存文件可以重复…

linux shell 宏定义_linux内核修炼之系统调用

fork()这个系统调用是有两个返回值的,在子进程中的返回值是0,在父进程中的返回值是PID,如下图 fork一次 返回两次关于0x80中断和特权级检查在mian函数的sched_init()函数中调用宏:set_system_gate(0x80,&system_call);将0x80号…

使用JPA和Hibernate有效删除数据

您可能会遇到必须对关系数据库中存储的大量数据集执行批量删除的情况。 如果您将JPA与Hibernate一起用作基础OR映射器,则可以尝试通过以下方式调用EntityManager的remove()方法: public void removeById(long id) {RootEntity ro…

java21个知识点重点_java21个知识点重点

http://blog.csdn.net/jerroluo/article/details/520025851. JVM相关(包括了各个版本的特性)对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说&#xf…

Django模型中字段属性choice使用

今天设计models时,用到了choice这个属性,用来限制用户做出选择的范围。比如说性别的选择(男或女)。 class User(AbstractUser):。。。sex models.CharField(verbose_name性别,max_length5,choi…

面试题4,打印出100-999所有的“水仙花数”。

提示:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。 (例如:1^3 5^3 3^3 153) package 面试;/*** 水仙花数* author liugang* create 2018/12/19 20:07**/ public class Shuixianhu…

angularjs的$http请求方式

/*$http常用的几个参数$http服务的设置对象:1、method 字符串 表示发送的请求类型 get post jsonp等等2、url 字符串 绝对或者相对的URL,请求的目标3、params 字符串或对象 会被转化成查询字符串加到URL后面,如果不是字符串会被JSON序列化4、data 字符串或者对象 这…

response对象设置返回状态_postman 设置全局变量

postman大家都知道是一个测试接口的工具,也是目前比较流行的一种测试工具,但是postman只是用来将API地址和参数填入send一下就完了吗?其实不是,关于postman其实有很多玩法,对于测试来说我觉得掌握了postman是非常有必要…

测试过大输入的代码

在编写单元测试时,我们主要关注业务的正确性。 我们将竭尽所能,开开心心地走在最前沿。 我们有时会进行微基准测试并衡量吞吐量。 但是经常遗漏的一个方面是当输入过大时我们的代码如何表现? 我们测试了如何处理正常的输入文件,格…

资源不在java项目和构建路径上_编译单元不在Java项目的构建路径上-Maven

今天,我已经在日食中导入了一个Maven项目.当我尝试自动建议时,当我添加一些代码时,它提示我“编译单元不在Java项目的构建路径上”.我没有看到解决此问题的方法,但是都没有解决.这个应该做什么?xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://m…

Django 第八课 2.【MySQL相关软件 mysqlclient Navicat Premium】

MySQL 驱动程序安装: 我们使用 Django 来操作 MySQL,实际上底层还是通过 Python来操作的。因此我们想要用 Django 来操作 MySQL,首先还是需要安装一个驱动程序。在python3中,驱动程序有多种选择。比如pymysql 以及mysqlclient等。…

查看串口的驱动信息

1、查看串口的驱动信息 2、驱动安装文件:http://www.wch.cn/download/CH341SER_EXE.html 3、参考驱动资料:https://blog.csdn.net/jazzsoldier/article/details/70169732 转载于:https://www.cnblogs.com/qy1234/p/10146303.html

用jQuery监听浏览器窗口的变化

1 $(window).resize(function () { //当浏览器大小变化时 2 alert($(window).height()); //浏览器时下窗口可视区域高度 3 alert($(document).height()); //浏览器时下窗口文档的高度 4 alert($(document.body).height()); //浏览器时下…

java中怎么判断一段代码时线程安全还是非线程安全_Java 中的多线程你只要看这一篇就够了...

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因…

使用Maven设置您的应用服务器

在许多情况下,无需先设置应用程序就无法部署应用程序。 在JBoss AS 7.x中,您可能需要配置例如数据库连接。 或者,您必须配置一个安全领域。 也许您还想调整SLSB池…在任何一种情况下,团队中的所有开发人员都必须共享一个共同的或至…

[洛谷P3178][HAOI2015]树上操作

题目大意:有一棵点数为 $N$ 的树,以点 1 为根。然后有 $M$ 个操作。 1. 把 $x$ 的点权增加 $a$ 。 2. 把 $x$ 为根的子树中所有点的点权都增加 $a$ 。 3. 询问 $x$ 到根的路径中所有点的点权和。 题解:树链剖分模板题 卡点:我真的…

实现 通过数据库里一个字段值相等 则把 他合为一条数据

需求: 把红色合为一条数据,绿色合为一条数据 结果: 不多说直接上代码......................................................... // 先查所有数据 const goods await service.goods.findAllGoodsWithParams({where: params,offset: ctx.p…

CSS定义字体间距 字体行与行间距

1 2     letter-spacing:像素(字母或中文字的左右间距)3 4 word-spacing:像素(两个单词之间的左右间距)5 6 line-height:像素(两行之间的间距)7 8 text-decoration:字体的装饰&am…

float与double类型参数区别_8大基本数据类型及包装类,不知道这些点别说自己是大佬...

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题&…