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 05 MySQL
mysql优化
Apr 06 MySQL
MySQL 覆盖索引的优点
May 19 MySQL
Navicat连接MySQL错误描述分析
Jun 02 MySQL
浅析MySQL如何实现事务隔离
Jun 26 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
mysql sum(if())和count(if())的用法说明
Jan 18 MySQL
JMeter对MySQL数据库进行压力测试的实现步骤
Jan 22 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 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
博士208HAF收音机实习报告
2021/03/02 无线电
在字符串指定位置插入一段字符串的php代码
2010/02/16 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
舞蹈教师自荐信
2014/01/27 职场文书
护士自我鉴定总结
2014/03/24 职场文书
安全宣传标语
2014/06/10 职场文书
放假通知格式
2015/04/14 职场文书
工作失职检讨书范文
2015/05/05 职场文书
团结友爱主题班会
2015/08/13 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
vue实现锚点定位功能
2021/06/29 Vue.js
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
python语言中pandas字符串分割str.split()函数
2022/08/05 Python