在平时的开发任务中我们经常会用到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 对多个字段进行分组操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

mysql如何进行分组操作的_mysql group by 对多个字段进行分组操作相关推荐

  1. MYSQL GROUP BY 对多个字段进行分组

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

  2. MYSQL  GROUP BY 对多个字段进行分组

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

  3. java 多字段分组_在Java 8中按多个字段名称分组

    我找到了通过POJO中的某些字段名称对对象进行分组的代码.以下是该代码: public class Temp { static class Person { private String name; ...

  4. mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录

    MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...

  5. mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录

    MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...

  6. mysql查看现在使用的引擎_mysql查看当前库使用的引擎及简单操作

    随手写下一些操作 mysql现在已提供什么存储引擎: mysql> show engines; mysql当前默认的存储引擎: mysql> show variables like '%s ...

  7. mysql下载是port报错_mysql group replication添加复制节点报错

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 恳求各位大神给把把脉,到底问题处在那个环节 环境: 三台物理机 192.168.1.3 192.168.1.4 192.168.1.5 配置文件: [my ...

  8. mysql设置固定ip地址访问_mysql设置指定ip访问,用户权限相关操作

    基础语法 GRANT priv_type ON database.table TO user[IDENTIFIED BY [PASSWORD] 'password'] [,user [IDENTIFI ...

  9. mysql自增长2个增加_mysql – 添加第二个自动增量字段并允许重复

    我有一个EXISTING表,其中包含一个名为ID的主键和其他与发票相关的其他字段.我需要插入旧表中的值并将所有值插入到新的但最近创建的表中.旧表中列出了发票编号,有时发票编号有重复.我需要这个我正在尝 ...

最新文章

  1. Jquery Types 小结
  2. xp计算机管理窗口,我的xp系统在“打开”窗口中没有“我的电脑”一项,只有界面、我的文档和界面,怎办?...
  3. Dart_VM的相关简介与运行模式解析
  4. CRMEB Dockerfile文件
  5. 关于动态修改定时器的时间间隔
  6. python爬虫实例手机_Python爬虫实现爬取京东手机页面的图片(实例代码)
  7. tcp协议中的长连接和短连接服务器,谈谈HTTP协议中的短轮询、长轮询、长连接和短链接...
  8. scrapy立面parse_立面设计模式–设计观点
  9. 漂亮的jQuery tab选项卡插件
  10. 分布式一致性协议:Raft协议
  11. Zookeeper安装以及启动详解
  12. 推荐一本写给IT项目经理的好书
  13. Android 插桩入门
  14. CAM是利用计算机,利用DroidCam将手机摄像头打造成计算机摄像头
  15. 【java小游戏】老虎杠子鸡游戏
  16. 可以背在身后的机器人助你一臂之力
  17. 有关傅里叶变换及其反变换的问题
  18. 二维码扫码登录是什么原理?
  19. html5界面设计教程,HTML5+CSS3网站设计基础教程
  20. 小米平板2刷哪个系统更流畅_终于给小米平板1刷上第三方安卓7.1系统了。一个字很流畅,性能几乎比安卓4.4.4底包的miui9多一万多分。 小米平板2安卓效率...

热门文章

  1. 封网后聊天就用“飞秋”
  2. Windows GDI和GDI+编程实例剖析(1)
  3. Python3基本数据类型快速入门
  4. 算法——贝叶斯公式的推导过程
  5. 遗传突变 | 正常与突变蛋白三维结构模型的绘制与分析
  6. 师弟新作!Nature子刊 | 重大进展!何川团队首次系统地获得了19个组织的5hmC图谱
  7. 北大出版社继续送书 | 附上周4位中奖的朋友信息
  8. Cell Research | 单细胞测序技术揭示派杰氏病的致病机制
  9. P3954 [NOIP2017 普及组] 成绩(python3实现)
  10. 无悔入华夏怎么一直显示服务器,无悔入华夏新手开局玩法 无悔入华夏新手攻略开局带的...