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
MySql - GROUP BY 和 HAVING关键字的更多相关文章
- mysql group by 用法解析(详细)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...
- (转载)mysql group by 用法解析(详细)
(转载)http://blog.tianya.cn/blogger/post_read.asp?BlogID=4221189&PostID=47881614 mysql distinct 去重 ...
- mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记 ...
- MySQL表名和数据库关键字相同解决办法
今天改他们的代码的时候,遇到了MySQL表名和数据库关键字的问题. 由于表名是关键字,导致增删改查都报错. Hibernate: select leave0_.id as id22_, leave0_ ...
- MySQL Group Replication 技术点
mysql group replication,组复制,提供了多写(multi-master update)的特性,增强了原有的mysql的高可用架构.mysql group replication基 ...
- 细细探究MySQL Group Replicaiton — 配置维护故障处理全集
本文主要描述 MySQL Group Replication的简易原理.搭建过程以及故障维护管理内容.由于是新技术,未在生产环境使用过,本文均是虚拟机测试,可能存在考虑不周跟思路有误 ...
- MySQL Group Replication 动态添加成员节点
前提: MySQL GR 3节点(node1.node2.node3)部署成功,模式定为多主模式,单主模式也是一样的处理. 在线修改已有GR节点配置 分别登陆node1.node2.node3,执行以 ...
- MySQL Group Replication-MGR集群
简介 MySQL Group Replication(简称MGR)字面意思是mysql组复制的意思,但其实他是一个高可用的集群架构,暂时只支持mysql5.7和mysql8.0版本. 是MySQL官方 ...
- mysql group by组内排序
mysql group by组内排序: 首先是组外排序: SELECT z.create_time,z.invoice_id from qf_invoice_log z where z ...
随机推荐
- Java Spring boot 企业微信点餐系统
欢迎关注我的微信公众号:"Java面试通关手册" 回复关键字" springboot "免费领取(一个有温度的微信公众号,期待与你共同进步~~~坚持原创,分享美 ...
- dm368 ipnc3.0环境搭建脚本
前言 为了方便其他人搭建dm368 ipnc3.0环境,我写了个脚本,执行脚本就可以自动搭建好环境了,绝对的傻瓜操作了,不过有一个地方让我很郁闷,那就是在用sed替换掉某段内容的时候(143行--15 ...
- linux下route命令--说的比较清楚!
linux下route命令 route命令感觉很不容易.一般开机后在命令行中使用route命令,会得到下面的信息 Kernel IP routing table Destination ...
- 「caffe编译bug」.build_release/lib/libcaffe.so: undefined reference to cv::imread
转自:https://www.douban.com/note/568788483/ CXX/LD -o .build_release/tools/convert_imageset.bin.build_ ...
- jquery ajax的再次封装,简化操作
1.封装的ajax var funUrl="" // 每个请求地址相同的部分 function queryData(url,params,success,error){ url ...
- 在ubuntu上安装Chrome
1.下载谷歌浏览器源文件.链接有很多,以下是64位版本的下载地址 https://dl.google.com/linux/direct/google-chrome-stable_current_amd ...
- [ python ] 软件开发规范
在python开发中,我们建议采用如下规范: soft/ ├── bin # 程序执行文件目录 │ ├── __init__.py │ └── start.py # 程序开始执行脚本文件 ├─ ...
- NTP路由器配置
14.1. 路由器日志显示时间戳 提问 在路由器 的日志和排错信息里面显示时间 回答 Router#configure terminal Enter configuration commands, o ...
- 【hdoj_1753】大明A+B(大数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1753 本题要求是,进行多位的小数加法,由于位数很多,所以不能用double类型存储,可以用字符串存储,然后 ...
- Java学习(基本语句,语法,变量)
一.基本语法: public class Demo { //定义一个类 public static void main(String[] args) { //主方法,一切程序的起点 /* 在屏幕上打印 ...