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的Seconds_Behind_Master
May 18 MySQL
MySql开发之自动同步表结构
May 28 MySQL
浅谈MySQL之浅入深出页原理
Jun 23 MySQL
MySQL 聚合函数排序
Jul 16 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
mysql的数据压缩性能对比详情
Nov 07 MySQL
mysql创建存储过程及函数详解
Dec 04 MySQL
MySQL常见优化方案汇总
Jan 18 MySQL
Windows 64位 安装 mysql 8.0.28 图文教程
Apr 19 MySQL
MySQL批量更新不同表中的数据
May 11 MySQL
MYSQL如何查看操作日志详解
May 30 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
Jun 28 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教程 变量定义
2009/10/23 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP处理会话函数大总结
2015/08/05 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
python使用mysql数据库示例代码
2017/05/21 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
行政经理的岗位职责
2013/11/23 职场文书
24岁生日感言
2014/01/13 职场文书
中文专业求职信
2014/06/20 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
总经理司机岗位职责
2015/04/10 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
golang slice元素去重操作
2021/04/30 Golang
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技