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 06 MySQL
详解MySQL主从复制及读写分离
May 07 MySQL
解读MySQL的客户端和服务端协议
May 10 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
MySQL CHAR和VARCHAR该如何选择
May 31 MySQL
MySQL的安装与配置详细教程
Jun 26 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
mysql数据库隔离级别详解
Jun 16 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
Mysql的常用命令
2006/10/09 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
Prototype Class对象学习
2009/07/19 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
vue实现通讯录功能
2018/07/14 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
python获得一个月有多少天的方法
2015/06/04 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
python3大文件解压和基本操作
2017/12/15 Python
python爬取微信公众号文章的方法
2019/02/26 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
广告业务员岗位职责
2014/02/06 职场文书
小班上学期个人总结
2015/02/12 职场文书
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫