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 相关文章推荐
数据库连接池
Apr 06 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
MySQL 存储过程的优缺点分析
May 20 MySQL
MySQL Shell import_table数据导入的实现
Aug 07 MySQL
浅谈MySQL函数
Oct 05 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
详解MySql中InnoDB存储引擎中的各种锁
Feb 12 MySQL
浅谈如何保证Mysql主从一致
Mar 13 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
Apr 12 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
jdbc中自带MySQL 连接池实践示例
Jul 23 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/10/09 PHP
完美的php分页类
2017/10/24 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
loading动画特效小结
2017/01/22 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
python实现井字棋游戏
2020/03/30 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python多继承原理与用法示例
2018/08/23 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
人事文员岗位职责
2014/02/16 职场文书
挂职学习心得体会
2014/09/09 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
转正申请报告格式
2015/05/15 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS