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主从复制断开的常用修复方法
Apr 07 MySQL
MySQL 数据类型选择原则
May 27 MySQL
Navicat for MySQL的使用教程详解
May 27 MySQL
MySQL CHAR和VARCHAR该如何选择
May 31 MySQL
MySQL的全局锁和表级锁的具体使用
Aug 23 MySQL
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
Aug 23 MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 MySQL
MySQL分区路径子分区再分区
Apr 13 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
Mysql中@和@@符号的详细使用指南
Jun 05 MySQL
手把手带你彻底卸载MySQL数据库
Jun 14 MySQL
mysql数据库隔离级别详解
Jun 16 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
PHP数字格式化
2006/12/06 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
详解php命令注入攻击
2019/04/06 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
python中enumerate函数用法实例分析
2015/05/20 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物