服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|

服务器之家 - 数据库 - Mysql - mysql group by 对多个字段进行分组操作

mysql group by 对多个字段进行分组操作

2020-11-18 23:49Kevin Mysql

这篇文章主要介绍了mysql group by 对多个字段进行分组操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在平时的开发任务中我们经常会用到MYSQL的GROUP BY分组, 用来获取数据表中以分组字段为依据的统计数据。

比如有一个学生选课表,表结构如下:

Table: Subject_Selection

Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica

我们想统计每门课程有多少个学生报名,应用如下SQL:

?
1
2
3
SELECT Subject, Count(*)
FROM Subject_Selection
GROUP BY Subject

得到如下结果:

Subject Count
------------------------------
ITB001 5
MKB114 2

因为表里记录了有5个学生选择ITB001,2个学生选择了MKB114。

产生这个结果的原因是:

GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里。

那么GROUP BY X, Y呢?

GROUP BY X, Y意思是将所有具有相同X字段值和Y字段值的记录放到一个分组里。

我们下面再接着要求统计出每门学科每个学期有多少人选择,应用如下SQL:

?
1
2
3
SELECT Subject, Semester, Count(*)
FROM Subject_Selection
GROUP BY Subject, Semester

上面SQL的意思是,对Subject_Selection表中的数据进行分组,将具有相同Subject和Semester字段值的记录放到同一个分组里去, 然后对每个分组中的数据应用聚合函数(COUNT,SUM, AVG,etc)。

得到的结果是:

Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2

从表中的记录我们可以看出这个分组结果是正确的有3个学生在第一学期选择了ITB001, 2个学生在第二学期选择了ITB001,还有两个学生在第一学期选择了MKB114, 没人在第二学期选择MKB114。

以上这篇mysql group by 对多个字段进行分组操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://segmentfault.com/a/1190000006821331

延伸 · 阅读

精彩推荐
  • MysqlMySQL5.7.23解压版安装教程图文详解

    MySQL5.7.23解压版安装教程图文详解

    这篇文章主要介绍了MySQL5.7.23解压版安装教程图文详解,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 ...

    no_cloud3492020-10-05
  • MysqlMySQL5.7 JSON类型使用详解

    MySQL5.7 JSON类型使用详解

    MySQL5.7发布后,专门设计了JSON数据类型以及关于这种类型的检索以及其他函数解析。 我们先看看MySQL老版本的JSON存取方式,具体内容详情大家参考下本文吧...

    懒得去死3132020-08-14
  • Mysql浅析删除表的几种方法(delete、drop、truncate)

    浅析删除表的几种方法(delete、drop、truncate)

    这篇文章主要介绍了删除表的几种方法,需要的朋友可以参考下 ...

    MYSQL教程网2422020-03-28
  • MysqlMySQL多表数据记录查询详解

    MySQL多表数据记录查询详解

    这篇文章主要为大家详细介绍了MySQL多表数据记录查询操作,具有一定的实用性,感兴趣的小伙伴们可以参考一下 ...

    ZJDWHD4202020-06-20
  • Mysqlmysql数据库索引损坏及修复经验分享

    mysql数据库索引损坏及修复经验分享

    这篇文章主要介绍了mysql数据库索引损坏及修复经验分享,需要的朋友可以参考下 ...

    MYSQL教程网5302020-05-11
  • MysqlMySQL如何创建触发器

    MySQL如何创建触发器

    这篇文章主要为大家详细介绍了MySQL如何创建触发器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    艾泽拉斯的太阳4172020-08-29
  • Mysqlmysql 8.0.14 安装配置方法图文教程

    mysql 8.0.14 安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 8.0.14 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    随意的马蒂洛克4782020-09-12
  • Mysqlmysql 数据库安装经验问题汇总

    mysql 数据库安装经验问题汇总

    这篇文章主要介绍了mysql 数据库安装经验问题汇总,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下...

    至情至性2982020-06-21