MySql中使用Group By对多个字段进行分组的方法


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要介绍了MySql Group By对多个字段进行分组的实现方法,需要的朋友可以参考下

相关mysql视频教程推荐:《mysql教程》

在平时的开发任务中我们经常会用到MYSQL的GROUP BY分组, 用来获取数据表中以分组字段为依据的统计数据。比如有一个学生选课表,表结构如下:

1

2

3

4

5

6

7

8

9

10

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

得到如下结果:

1

2

3

4

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)。

阅读剩余部分

相关阅读 >>

navicat for mysql连接mysql报2005错误怎么办

mysql查询连续记录方式

mysql如何修改表字符编码

mysql怎么将字符串转换为大写?

mysql深入浅出负载均衡

mysql、sqlserver、oracle三大数据库的区别

分享mysql优化思路

mysql中时间戳精度怎么用

详解在mysql查询时,offset过大影响性能的原因与优化方法

详解mysql实时同步到oracle解决方案

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...