MySQL数据库分组查询group by语句详解
一:分组函数的语句顺序
1 SELECT ... 2 FROM ... 3 WHERE ... 4 GROUP BY ... 5 HAVING ... 6 ORDER BY ...
二:WHERE和HAVING筛选条件的区别
数据源 位置 关键字 WHERE 原始表 ORDER BY语句之前 WHERE HAVING 分组后的结果集 ORDER BY语句之后 HAVING
三:举例说明
#1.查询每个班学生的最大年龄 SELECT MAX(age),class FROM STU_CLASS GROUP BY CLASS; # 2.查询每个班中男女生的最大年龄 SELECT MAX(age),class,sex FROM STU_CLASS GROUP BY class,sex; #3.查询每个班中男女生的平局年龄,且平均年龄大于15岁 SELECT AVG(age),class,sex FROM STU_CLASS GROUP BY class,sex HAVING avg(age) > 15;
四:注意点
1.通常情况下,GROUP BY关键字与集合函数一起使用,先使用GROUP BY关键字将记录分组,然后每组都使用集合函数进行计算。在统计时经常需要使用GROUP BY关键字和集合函数。
COUNT()
函数:用于统计记录的条数。
SUM()
函数:用于计算字段的值的总和。
AVG()
函数:用于计算字段的值的平均值。
MAX()
函数:用于查询字段的最大值。
MIN()
函数:用于查询字段的最小值。
以上就是MySQL数据库分组查询group by语句详解的详细内容,更多关于MySQL数据库语句的资料请关注我们其它相关文章!
相关推荐
-
mysql group by 对多个字段进行分组操作
在平时的开发任务中我们经常会用到MYSQL的GROUP BY分组, 用来获取数据表中以分组字段为依据的统计数据. 比如有一个学生选课表,表结构如下: Table: Subject_Selection Subject Semester Attendee --------------------------------- ITB001 1 John ITB001 1 Bob ITB001 1 Mickey ITB001 2 Jenny ITB001 2 James MKB114 1 John MKB
-
MySQL 分组查询和聚合函数
概述 相信我们经常会遇到这样的场景:想要了解双十一天猫购买化妆品的人员中平均消费额度是多少(这可能有利于对商品价格区间的定位):或者不同年龄段的化妆品消费占比是多少(这可能有助于对商品备货量的预估). 这个时候就要用到分组查询,分组查询的目的是为了把数据分成多个逻辑组(购买化妆品的人员是一个组,不同年龄段购买化妆品的人员也是组),并对每个组进行聚合计算的过程:. 分组查询的语法格式如下: select cname, group_fun,... from tname [where conditio
-
MySql Group By对多个字段进行分组的实现方法
在平时的开发任务中我们经常会用到MYSQL的GROUP BY分组, 用来获取数据表中以分组字段为依据的统计数据.比如有一个学生选课表,表结构如下: Table: Subject_Selection Subject Semester Attendee --------------------------------- ITB001 1 John ITB001 1 Bob ITB001 1 Mickey ITB001 2 Jenny ITB001 2 James MKB114 1 John MKB1
-
详解MySQL中的分组查询与连接查询语句
分组查询 group by group by 属性名 [having 条件表达式][ with rollup] "属性名 "指按照该字段值进行分组:"having 条件表达式 "用来限制分组后的显示,满足条件的结果将被显示:with rollup 将会在所有记录的最后加上一条记录,该记录是上面所有记录的总和. 1)单独使用 group by 单独使用,查询结果只显示一个分组的一条记录. 实例: select * from employee group by sex;
-
MySQL分组查询Group By实现原理详解
由于GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了排序之后的分组操作.当然,如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数的计算.所以,在GROUP BY 的实现过程中,与 ORDER BY 一样也可以利用到索引. 在MySQL 中,GROUP BY 的实现同样有多种(三种)方式,其中有两种方式会利用现有的索引信息来完成 GROUP BY,另外一种为完全无法使用索引的场景下使用.下面我们分别针对这三种实现方式做一个分
-
MySQL数据库分组查询group by语句详解
一:分组函数的语句顺序 1 SELECT ... 2 FROM ... 3 WHERE ... 4 GROUP BY ... 5 HAVING ... 6 ORDER BY ... 二:WHERE和HAVING筛选条件的区别 数据源 位置 关键字 WHERE 原始表 ORDER BY语句之前 WHERE HAVING 分组后的结果集 ORDER BY语句之后 HAVING 三:举例说明 #1.查询每个班学生的最大年龄 SELECT MAX(age),class FROM STU_CLASS GR
-
MySQL数据库完全备份与增量备份详解
目录 定义 完全备份与恢复演示 定义 完全备份就是将数据库中的数据及所有对象全部备份. 由于 MySQL 服务器中的数据文件是基于磁盘的文本文件,所以完全备份就是复制数据库文件,是最简单也是最快速的方式. 但 MySQL 服务器的数据文件在服务器运行期间,总是处于打开状态,为实现真正的完全备份,需要先停止 MySQL 数据库服务器. 为了保障数据的完整性,在停止 MySQL 服务器之前,需要先执行 flush tables 语句将所有数据写入到数据文件中.对于该方法同学们只需了解,因为将生产环境
-
MySQL数据库如何给表设置约束详解
目录 一.PK(主键约束) 1.什么是主键? 2.怎么设置主键? 二.FK(外键约束) 1.什么是外键 2.怎么设置外键 三.unique(唯一约束) 1.什么是唯一约束? 2.如何设置唯一约束 四.notnull(非空) 五.default(默认值) 六.auto_increment(自增) 一.PK(主键约束) 1.什么是主键? 在了解主键之前,先了解一下什么是关键字 关键字:在表中具有唯一性的字段,比如一个人的身份证号,学号.一个表中可以有多个关键字. 主键也叫主关键字,就是由一个或多个关
-
Python实现连接MySql数据库及增删改查操作详解
本文实例讲述了Python实现连接MySql数据库及增删改查操作.分享给大家供大家参考,具体如下: 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查.(注意是python3) 1.安装PyMySQL PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb.PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库.在使用 PyMySQ
-
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
本文实例讲述了PHP5.5基于mysqli连接MySQL数据库和读取数据操作.分享给大家供大家参考,具体如下: 在学习1. 开启PHP的API支持 (1)首先修改您的php.ini的配置文件. 查找下面的语句: ;extension=php_mysqli.dll 将其修改为: extension=php_mysqli.dll (2)重新启动Apache/IIS,即可. (3)说明:PHP需要单独的文件来支持这个扩展库,一般在PHP目录下的ext目录里能找到php_mysqli.dll文件(PHP
-
python3.6连接mysql数据库及增删改查操作详解
折腾好半天的数据库连接,由于之前未安装 pip ,而且自己用的python 版本为3.6. 只能用 pymysql 来连接数据库,下边 简单介绍一下 连接的过程,以及简单的增删改查操作. 1.通过 pip 安装 pymysql 进入 cmd 输入 pip install pymysql 回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import pymysql #导入 pymysql 如果编译未出错,即表示 pymysql 安装成功 简单的增删改查操作 示
-
Mysql数据库表定期备份的实现详解
Mysql数据库表定期备份的实现 0.背景 实际开发环境中,前端程序需要在给定时间段内,将数据更新/插入到MySQL指定的库表中.随着数据量的增多,基础库表基数的增长,每更新一次都会有5s左右的卡顿. 改进方案一:批量更新,累计数10条或者100条进行一次更新入库操作: 改进方案二:将当前日期前1个月之前的数据进行备份操作,并删除当前库表中1个月前的数据.经测定,该方法一定程度提高了访问效率.根因:基础表基数少,查询效率相对提高. 1.库表的定时备份总结 步骤1:备份Mysql指定数据库中的制定
-
django mysql数据库及图片上传接口详解
前言 我们在 django-rest-framework解析请求参数 文章中完成了接口文档到参数解析, 一个完整的流程中还缺少对数据库的操作. 本篇内容为django连接数据库, 并编写一个image表用来存储图片路径, 编写图片上传接口和查看数据库中所有图片路径的接口. 前期准备 django操作图片需要安装一个三方库叫做,Pillow workon python35 pip install pillow pip install pymysql Pillow这个库可以对图片进行操作, 例如生成
-
Python3爬虫学习之MySQL数据库存储爬取的信息详解
本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在txt文件中后期处理起来会比较麻烦,很不方便,如果数据量比较大的情况下,查找更加麻烦,所以我们通常会把爬取的数据存储到数据库中便于后期分析利用. 这里,数据库选择MySQL,采用pymysql 这个第三方库来处理python和mysql数据库的存取,python连接mysql数据库的配置信息 db_
-
django连接mysql数据库及建表操作实例详解
本文实例讲述了django连接mysql数据库及建表操作.分享给大家供大家参考,具体如下: django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找到settIngs里面的database设置如下 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 's22',
随机推荐
- python使用线程封装的一个简单定时器类实例
- 防止动态加载JavaScript引起的内存泄漏问题
- Vue组件tree实现树形菜单
- Centos7下无法远程连接mysql数据库的原因与解决
- Windows下自动备份MongoDB的批处理脚本
- Java实现图片上传到服务器并把上传的图片读取出来
- Oracle 数据库导出(exp)导入(imp)说明
- 写js时遇到的一些小问题
- asp.net的web页面(aspx)数据量过多时提交失败对策
- php简单创建zip压缩文件的方法
- python基于urllib实现按照百度音乐分类下载mp3的方法
- Android 面试题汇总
- 详解制作各种docker镜像
- 深入解析C++中类的多重继承
- nginx 伪静态化rewrite规则
- linux下oracle设置开机自启动实现方法
- jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
- jQuery 使用手册(三)
- 基于gentoo安装Nginx php mysql的方法
- php实现的在线人员函数库