MySQL GROUP BY:分组查询
在 MySQL SELECT 语句中,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。
语法格式如下:
GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC]
语法说明如下:
<列名>
:指定用于分组的列。可以指定多个列,彼此间用逗号分隔。<表达式>
:指定用于分组的表达式。通常与聚合函数一块使用,例如可将表达式 COUNT(*)AS' 人数 ' 作为 SELECT 选择列表清单的一项。<位置>
:指定用于分组的选择列在 SELECT 语句结果集中的位置,通常是一个正整数。例如,GROUP BY 2 表示根据 SELECT 语句列清单上的第 2 列的值进行逻辑分组。ASC|DESC
:关键字 ASC 表示按升序分组,关键字 DESC 表示按降序分组,其中 ASC 为默认值,注意这两个关键字必须位于对应的列名、表达式、列的位置之后。
注意:GROUP BY 子句中的各选择列必须也是 SELECT 语句的选择列清单中的一项。
对于 GROUP BY 子句的使用,需要注意以下几点。
- GROUP BY 子句可以包含任意数目的列,使其可以对分组进行嵌套,为数据分组提供更加细致的控制。
- GROUP BY 子句列出的每个列都必须是检索列或有效的表达式,但不能是聚合函数。若在 SELECT 语句中使用表达式,则必须在 GROUP BY 子句中指定相同的表达式。
- 除聚合函数之外,SELECT 语句中的每个列都必须在 GROUP BY 子句中给出。
- 若用于分组的列中包含有 NULL 值,已经为大家精心准备了大数据的系统学习资料,从Linux-Hadoop-spark-......,需要的小伙伴可以点击则 NULL 将作为一个单独的分组返回;若该列中存在多个 NULL 值,则将这些 NULL 值所在的行分为一组。
【实例】根据 dept_id 对 tb_students_info 表中的数据进行分组,将每个学院的学生姓名显示出来,输入的SQL语句和执行结果如下所示。
mysql> SELECT dept_id,GROUP_CONCAT(name) AS names -> FROM tb_students_info -> GROUP BY dept_id; +---------+---------------+ | dept_id | names | +---------+---------------+ | 1 | Dany,Jane,Jim | | 2 | Henry,John | | 3 | Green,Thomas | | 4 | Susan,Tom | | 6 | Lily | +---------+---------------+ 5 rows in set (0.02 sec)
由运行结果可以看出,根据 dept_id 的不同分别统计了 dept_id 相同的姓名。
MySQL GROUP BY:分组查询相关推荐
- mysql group by 分组查询
分组的SQL语句有2个: group by 和分组聚合函数实现 partition by (oracle和postgreSQL中的语句)功能 group by + having 组合赛选数据 注意:h ...
- java中mysql分组查询_ES对应mysql的group by分组查询javaApi,多对多关系的分组查询...
ES对应mysql的group by分组查询javaApi,多对多关系的分组查询 比如我这边有个下列订单索引数据,现在的需求是按用户(fmerchantId)和支付方式(fchannelId)进行分组 ...
- mysql按月份分组查询_mysql如何按月份分组查询
mysql按月份分组查询的方法:根据format字符串格式化date值,语法为[DATE_FORMAT(date,format)],其中[%M ]为月的名字. mysql按月份分组查询的方法:sele ...
- 使用mysql语句进行分组查询
使用mysql语句进行分组查询 1 作用 对整个数据表的某几个字段进行分组,然后通过分组函数得到我们想要的结果 2 如何用 2.1 只分一个组 2.1.1 本质 就是根据分组字段把整个表的数据分为几组 ...
- group by分组查询后排序
group by分组查询后排序 如:分组查询 SELECT s.name name,COUNT(s.id) value FROM t_setmeal s,t_order o WHERE s.id=o. ...
- MySQL使用group by分组查询每组最新的一笔数据
问题来源 今天遇到一个查询数据库数据的问题:要获取每个分组最新的一笔数据,并将每个分组最新的一笔数据重新组成一个新的列表 这种场景,当然是想到了分组查询,使用 group by,思路也很清晰: 将所有 ...
- 9、使用GROUP BY分组查询
在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组. 使用 GROUP BY 关键字的语法格式如下: GROUP BY <字段名> 其中,"字段 ...
- 2020-09-10 MYSQL按时间段分组查询当天,每小时,15分钟数据分组
查询的需求比较麻烦,根据spreader_id和返回的状态码来判断事件的回传成功率,但是还需要新增时间段的查询,比如产品要的是每15分钟内数据的回传成功率. 这样的话就需要对时间段进行分组查询,我保存 ...
- mysql数据库如何分组查询_数据库MySQL--分组查询
分组数据:group by 子句 分组查询语法: select 分组函数,列(要求是出现在group by的后面) from 表 (where 筛选条件) # where 必须连接from关键字 g ...
- 都是MyBatis分页工具PageHelper惹的祸 —— 记一次加入GROUP BY分组查询成功,不分组则失败的奇怪现象Debug过程
项目技术框架 请您打开世界上最好使的Java编译器IntelliJ IDEA,建一个SpringBoot项目,保证项目中包含以下依赖: 后端框架:SpringBoot + JUnit 数据库持久化:M ...
最新文章
- Redis:事件驱动(IO多路复用)
- PHP--字符串处理函数
- 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 生成对抗网络
- Excel 将换行符替换为空
- python语言-Python语言的特点有哪些?
- IPTV码流分析指标
- win10 U盘无法识别修复方法
- 想给我们的线下分享会起个名字,求建议!
- python下载自己网易云歌单的歌曲
- mumu模拟器屏蔽root,mumu模拟器下载
- H3C服务器带外默认账号和密码
- 逻辑回归——一文带你搞懂逻辑回归原理
- 服务器导出word文档中有乱码,使用Aspose.word DOC转PDF文件乱码问题-Doc文件
- 看《奇迹.笨小孩》有感
- 高考数学试题不等关系与不等式|附习题
- 晨曦记账本记账,计算每个账户的某时间段账目
- Win10彻底关闭实时保护
- 华为9306 snmp OID
- HTC ruu 解密 工具编译 提取解密key 自行解密 流程记录
- 安装软件时出现不能打开要写入的文件怎么解决?
热门文章
- WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
- Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中
- Python机器学习类库常见问题及解决
- 钢琴演奏:舒伯特的小夜曲 --- 女儿的钢琴学习
- 从零开始Vue项目实战(二)-搭建环境
- CSS 高级布局技巧
- Word中更新交叉引用
- JVM 学习笔记 1. JVM 运行模型
- 软件安装被分成了两个iso文件怎么安装
- 低功耗蓝牙系统结构流程图