mysql的group by使用及多字段分组

 更新时间:2023年09月04日 11:27:46   作者:惠菁  
Group By是一种SQL查询语句,常用于根据一个或多个列对查询结果进行分组,本文主要介绍了mysql的group by使用及多字段分组,感兴趣的可以了解一下

首先,思考一个问题,GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里,即是以X字段进行分组;那么GROUP BY X, Y呢,同理,此意思是将所有具有 相同X和Y字段值的记录放到一个分组里,换言之,是以X和Y字段进行分组。group by一般是和聚合函数在一起使用,例如count、sum、avg等,使用group by的两个要素:

1)创建数据表

2)插入数据

按照score列进行分组,计算数量

SELECT score,count(*) FROM `main_user` GROUP BY score

按照score列进行分组,计算数量,并根据score列倒叙

SELECT score,count(*) FROM `main_user` GROUP BY score desc

根据score,age两列进行分组

SELECT score,age,count(*) FROM `main_user` GROUP BY score,age

根据score,age两列进行分组,并排序

SELECT score,age,count(*) FROM `main_user` GROUP BY score desc ,age desc

使用 WITH ROLLUP

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。

例如单个字段分组使用 with rollup

ELECT score,max(age),count(*),min(age) FROM `main_user` GROUP BY score [desc/asc] with rollup

我们可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:

select coalesce(a,b,c);

参数说明:如果anull,则选择b;如果bnull,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

SELECT coalesce(score,'xxx'),max(age),count(*),min(age) FROM `main_user` GROUP BY score desc with rollup

例如多个字段分组使用 with rollup

SELECT score,age,max(age),count(*),min(age) FROM `main_user` GROUP BY score,age with rollup

SELECT score,age,max(age),count(*),min(age) FROM `main_user` GROUP BY age,score with rollup

到此这篇关于mysql的group by使用及多字段分组的文章就介绍到这了,更多相关mysql group by使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL解决Navicat设置默认字符串时的报错问题

    MySQL解决Navicat设置默认字符串时的报错问题

    本文主要介绍了MySQL解决Navicat设置默认字符串时的报错,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Window下Mysql忘记root密码怎么重置

    Window下Mysql忘记root密码怎么重置

    这篇文章主要介绍了Window下Mysql忘记root密码的重置方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • MySql insert插入操作的3个小技巧分享

    MySql insert插入操作的3个小技巧分享

    这篇文章主要介绍了MySql insert插入操作的3个小技巧分享,本文讲解了插入的数据来源自其他表、插入时排除(忽略)重复记录、插入时遇到重复记录做更新操作三个小技巧,需要的朋友可以参考下
    2015-03-03
  • MySQL中的undo日志

    MySQL中的undo日志

    这篇文章主要介绍了MySQL中的undo日志的相关资料,帮助大家更好的理解和学习MySQL的相关知识,感兴趣的朋友可以了解下
    2020-11-11
  • MYSQL之on和where的区别解读

    MYSQL之on和where的区别解读

    这篇文章主要介绍了MYSQL之on和where的区别解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 浅谈MySQL中的自增主键用完了怎么办

    浅谈MySQL中的自增主键用完了怎么办

    这篇文章主要介绍了浅谈MySQL中的自增主键用完了怎么办,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • mysql实现数据文件存储到指定分区的示例代码

    mysql实现数据文件存储到指定分区的示例代码

    MySQL中可以使用分区表来提高数据检索速度,本文主要介绍了mysql实现数据文件存储到指定分区的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • MySQL事务的四种特性总结

    MySQL事务的四种特性总结

    事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体,一个 MySQL 数据库,可不止你一个事务在运行,所以一个完整的事务,绝对不是简单的 sql 集合,本文就给大家总结一下MySQL事务的四种特性
    2023-08-08
  • MySQL最基本的命令使用汇总

    MySQL最基本的命令使用汇总

    这篇文章为大家分享了MySQL最基本的命令使用汇总,MySQL最基本的命令使用,包括如何正确连接MySQL(和PHP搭配之最佳组合),修改密码与增加新用户等相关内容的描述,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式

    详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式

    本篇文章主要介绍了buntu Server下启动/停止/重启MySQL数据库的三种方式,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01

最新评论