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 不等于的三种使用及区别
Jun 03 MySQL
mysql中between的边界,范围说明
Jun 08 MySQL
浅谈mysql增加索引不生效的几种情况
Jun 23 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
MySql子查询IN的执行和优化的实现
Aug 02 MySQL
SpringBoot连接MySQL获取数据写后端接口的操作方法
Nov 02 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
全面盘点MySQL中的那些重要日志文件
Nov 27 MySQL
MySQL之MyISAM存储引擎的非聚簇索引详解
Mar 03 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 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
微信公众号实现会员卡领取功能
2017/06/08 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
javascript arguments使用示例
2014/12/16 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
原生JS实现轮播图效果
2018/10/12 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
Python实现的栈(Stack)
2018/01/26 Python
Django如何自定义分页
2018/09/25 Python
Django框架视图函数设计示例
2019/07/29 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
30年同学聚会感言
2014/01/30 职场文书
公司联欢会策划方案
2014/05/19 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
教师节慰问信
2015/02/15 职场文书
物流业务员岗位职责
2015/04/03 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
南京大屠杀观后感
2015/06/02 职场文书