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 InnoDB ReplicaSet(副本集)简单介绍
Apr 24 MySQL
MySQL Router的安装部署
Apr 24 MySQL
MySQL 可扩展设计的基本原则
May 14 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
MyBatis 动态SQL全面详解
Oct 05 MySQL
mysql中varchar类型的日期进行比较、排序等操作的实现
Nov 17 MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 MySQL
MySQL学习之基础操作总结
Mar 19 MySQL
MySQL插入数据与查询数据
Mar 25 MySQL
Mysql查询时间区间日期列表,不会由于数据表数据影响
Apr 19 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
MySQL数据库表约束讲解
Jun 21 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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
半年思想汇报
2013/12/30 职场文书
质量承诺书格式
2014/05/20 职场文书
地方课程教学计划
2015/01/19 职场文书
市场部岗位职责
2015/02/12 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
python urllib库的使用详解
2021/04/13 Python
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python