mysql分组后合并显示一个字段的多条数据方式


Posted in MySQL onJanuary 22, 2022

mysql分组合并显示一个字段多条数据

首先我们有一张学生兴趣表(student_hobby),字段包括主键(id)、姓名(name)、兴趣(hobby)

表中数据如下

id name hobby
0 小明 篮球
1 小明 跑步
2 小华 读书

然后我们想让他显示成如下效果。

name hobbies
小明 篮球,跑步
小华 读书

那么我们可以使用如下SQL。

select name,group_concat(hobby separator ',') hobbies from student_hobbt group by name;

其中分隔符逗号也可以替换为其他想要使用的字符。

mysql多字段分组

mysql多字段分组

group by 语法

分组查询是对数据按照某个或多个字段进行分组,MYSQL中使用group by关键字对数据进行分组,基本语法形式为:

[GROUP BY 字段][HAVING <条件表达式>]

多字段分组

使用GROUP BY可以对多个字段进行分组,GROUP BY关键字后面跟需要分组的字段,MYSQL根据多字段的值来进行层次分组,分组层次从左到右,即先按照第1个字段分组,然后在第1个字段值相同的记录中,再根据第2个字段的值进行分组,以此类推。

GROUP BY与ORDER BY一起使用(分组排序)

某些情况下需要对分组进行排序,order by用来对查询的记录排序,如果和GROUP BY一起使用,就可以完成对分组的排序

例如下表:

mysql分组后合并显示一个字段的多条数据方式

将上表中数据按照wellid和年月的格式分组统计: 

sql语句:

select wellid,sum(number) as sum,DATE_FORMAT(time,'%Y-%m') as createTime 
from well 
GROUP BY wellid,createTime
order by createTime;

统计结果:

mysql分组后合并显示一个字段的多条数据方式

使用having过滤分组

GROUP BY可以和HAVING一起限定显示记录所需要满足的条件,只有满足条件的分组才会被显示 

还是上面张表,我们这次限定只要2020年12月之后的数据:

select wellid,sum(number) as sum,DATE_FORMAT(time,'%Y-%m') as createTime 
from well 
GROUP BY wellid,createTime
having createTime>'2020-12'
order by createTime;

查询结果:

mysql分组后合并显示一个字段的多条数据方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL root密码的重置方法
Apr 21 MySQL
MySQL索引知识的一些小妙招总结
May 10 MySQL
Mysql效率优化定位较低sql的两种方式
May 26 MySQL
MySQL深度分页(千万级数据量如何快速分页)
Jul 25 MySQL
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
mysql中数据库覆盖导入的几种方式总结
Mar 25 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
MySQL串行化隔离级别(间隙锁实现)
Jun 16 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL中int (10) 和 int (11) 的区别
Jan 22 #MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
MySQL创建定时任务
Jan 22 #MySQL
SQL基础查询和LINQ集成化查询
Jan 18 #MySQL
MySQL常见优化方案汇总
Jan 18 #MySQL
mysql sum(if())和count(if())的用法说明
SQL语法CONSTRAINT约束操作详情
Jan 18 #MySQL
You might like
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
javascript globalStorage类代码
2009/06/04 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
小程序实现留言板
2018/11/02 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
Python处理JSON数据并生成条形图
2016/08/05 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
python实现LRU热点缓存及原理
2019/10/29 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
外科实习自我鉴定
2013/10/06 职场文书
夏季奶茶店创业计划书
2014/01/16 职场文书
志愿者活动总结范文
2014/04/26 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
工作作风承诺书
2014/08/30 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
母亲节寄语大全
2015/02/27 职场文书
新课程改革心得体会
2016/01/22 职场文书