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 相关文章推荐
详解GaussDB for MySQL性能优化
May 18 MySQL
MySQL下使用Inplace和Online方式创建索引的教程
May 26 MySQL
MySQL的Query Cache图文详解
Jul 01 MySQL
MySQL千万级数据表的优化实战记录
Aug 04 MySQL
MySQL中几种插入和批量语句实例详解
Sep 14 MySQL
MySQL数据库完全卸载的方法
Mar 03 MySQL
MySQL中B树索引和B+树索引的区别详解
Mar 03 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
详解Mysql事务并发(脏读、不可重复读、幻读)
Apr 29 MySQL
MySQL聚簇索引和非聚簇索引的区别详情
Jun 14 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
mysql序号rownum行号实现方式
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
用缓存实现静态页面的测试
2006/12/06 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
2013/07/31 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
Python中获取对象信息的方法
2015/04/27 Python
python常见数制转换实例分析
2015/05/09 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
如何基于python操作json文件获取内容
2019/12/24 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
一些.net面试题
2014/10/06 面试题
企业安全生产承诺书
2014/05/22 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
大学辅导员述职报告
2015/01/10 职场文书
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫