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 Threads_running飙升与慢查询的相关问题解决
May 08 MySQL
MySQL 自定义变量的概念及特点
May 13 MySQL
MySQL主从搭建(多主一从)的实现思路与步骤
May 13 MySQL
mysql 数据插入优化方法之concurrent_insert
Jul 01 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
Jul 25 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
MySQL悲观锁与乐观锁的实现方案
Nov 02 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
Mar 13 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
MySQL创建管理子分区
Apr 13 MySQL
MySQL 字符集 character
May 04 MySQL
mysql sock 文件解析及作用讲解
Jul 15 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
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
使用python绘制人人网好友关系图示例
2014/04/01 Python
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python发送email的3种方法
2015/04/28 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
三个python爬虫项目实例代码
2019/12/28 Python
Python正则表达式学习小例子
2020/03/03 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
社区党总支书记先进事迹材料
2014/01/24 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
爱情保证书大全
2014/04/29 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
给客户的检讨书
2014/12/21 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL