MySQL分组查询

来源:互联网 发布:java maven log4j2 编辑:程序博客网 时间:2024/06/08 06:10

在对数据表中数据进行统计时,可能需要按照一定的类别分别进行统计,比如,分别统计student表中,gender字段值为na、nv和NULL的学生成绩grade之和

MySQL中,使用GROUP BY按某个字段,或者多个字段中的值,进行分组,字段中值相同的为一组
SELECT 字段名1,字段名2,……
FROM 表名
WHERE BY 字段名1,字段名2,……[HAVING 条件表达式];

参数说明

指定的字段名1、字段名2,是对查询结果分组的依据
HAVING关键字,指定条件表达式,对分组后的内容进行过滤
GROUP BY,一般和聚合函数一起使用,如果,查询的字段出现在GROUP BY后,却没有包含在聚合函数中,该字段显示的是,分组后的第一条记录的值,这样,可能会导致查询结果不符合我们的预期

一、单独使用GROUP BY分组

单独使用GROUP BY关键字,查询的是每个分组中的一条记录

查询student表中的记录,安装gender字段值进行分组

这里写图片描述

可以看出,返回了3条记录,分别是gender字段值为NULL、nv、na的记录,查询结果按照gender字段中不同的值进行了分类,然后,值显示每个分组中的一条记录,意义不大,一般情况下,GROUP BY都和聚合函数一起使用

二、GROUP BY和聚合函数,一起使用

GROUP BY和聚合函数,一起使用,可以统计出某个,或者某些字段在一个分组中的最大值、最小值、平均值

查询student表,按照gender字段值进行分组,计算出每个分组中各有多少名学生

这里写图片描述

可以看出,GROUP BY对gender字段进行了分组,然后,通过COUNT()函数统计出了每组的数量

三、GROUP BY和HAVING关键字,一起使用

HAVING关键字和WHERE关键字的作用相同,都是用于设置条件表达式,对查询结果进行过滤。

两者的区别,HAVING关键字后,可以跟聚合函数,而WHERE关键字不能,通常情况下,HAVING关键字,都是和GROUP BY一起使用,用于对分组后的结果进行过滤

查询student表,按照gender字段进行分组,查询出grade字段值之和小于300的分组

这里写图片描述

可以看出,只有gender字段值为NULL和nv的分组,grade字段值之和小于300

验证查询结果,对gender字段值为na的记录,grade字段值之和进行查询

这里写图片描述

可以看出,gender字段值为na,所有学生的grade字段之和为523

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 滴滴永久封停的号怎么办 微信版本过低怎么办 报关时通关单号没录怎么办 公司注销了行政许可证怎么办呢 报关项数超过50项怎么办 出口报关件数报多了怎么办 关税少交被海关缉私查到怎么办 外贸报关hs编码报错怎么办 报关金额少报了怎么办 进口报关金额少报了怎么办 报关重量报少了怎么办 金额报多100倍怎么办 ems没扫描到单号怎么办 回国海关被税了怎么办 代购买错东西了怎么办 征信报告有逾期怎么办 evus信息填错了怎么办 清关一个月了该怎么办 清关一直不发怎么办 清关一个月了怎么办 香港ems到西安海关税怎么办 寄东西被海关扣留怎么办 天津港新舱单品名错误核销怎么办 移动手机不能用联通卡怎么办 移动手机联通卡网速卡怎么办 移动手机不支持联通4g怎么办 汽车分离轴承异响怎么办 至尊宝被冻结了怎么办 qq冻结了至尊宝怎么办 至尊宝没办法申诉怎么办 至尊宝qq被冻结怎么办 未满16岁怎么办手机卡 联想预装的office卸载怎么办 win10激活后无法启动怎么办 移动电话卡没用了没注销怎么办 快捷快递客服热线一直打不通怎么办 牛奶乳加钙咀嚼片吃多了怎么办 三生骗了我该怎么办 国珍产品新时代卡怎么办 三个月大的宝宝对眼怎么办 9月大婴儿眼睛对眼怎么办