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

本文介绍了在MySQL中如何使用GROUP BY语句对多个字段进行分组操作,通过示例展示了如何统计学生选课表中每门课程每个学期的选课人数,从而帮助理解GROUP BY在多字段分组时的工作原理。
摘要由CSDN通过智能技术生成

在平时的开发任务中我们经常会用到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:

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:

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 对多个字段进行分组操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值