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执行计划
May 31 MySQL
探究Mysql模糊查询是否区分大小写
Jun 11 MySQL
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
Jun 26 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
MySQL中CURRENT_TIMESTAMP的使用方式
Nov 27 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
MySQL查询日期时间
May 15 MySQL
分享很少见很有用的SQL功能CORRESPONDING
Aug 05 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
Aug 14 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/10/09 PHP
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
原生js实现移动端瀑布流式代码示例
2015/12/18 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
python3抓取中文网页的方法
2015/07/28 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
自我鉴定四大框架
2014/01/17 职场文书
不假外出检讨书
2014/01/27 职场文书
校园安全检查制度
2014/02/03 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
远程教育学习心得体会
2016/01/23 职场文书