请选择 进入手机版 | 继续访问电脑版

【SQL学习笔记5】group by 和集合函数&group by和having

[复制链接]
苍野狼步 发表于 2020-12-31 18:58:20 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1.group by分组函数,通过特定字段将要统计的函数举行分组,并在分组内举行盘算。
⚠️ group by之后,select后面只能出现分组字段或聚集函数;
比方:统计差别性别的均匀年事(通过性别将学生举行分组,并在分组内举行年事的均匀值盘算)
底子参考表布局:https://blog.csdn.net/Icesj0280/article/details/111546189
  1. -- 通过字段名称表现分组:select gender,avg(age) from student group by gender;-- 也可以通过数字表现分组,1表现select后面的第一列为分组字段:select gender,avg(age) from student group by 1;
复制代码
 
  1. -- 求所有学生的均匀年事select avg(age) from student;
复制代码
2.SQL 聚集函数:sum(求和) 、avg(均匀值)、min(最小值)、 max(最大值)、 count(计数)
聚集函数是用来对分组内的数据举行盘算的,事实上,当不含有分组函数时,默认只有一个分组,select后面的聚集函数即对全组举行盘算。
比方:统计选择语文课、数学课的男生、女生各有多少人:
  1. select t1.couname,gender,count(*) as count from(select couid,couname from course where couname in ("语文","数学")) t1join grade on t1.couid=grade.couidjoinstudenton grade.stuid=student.stuidgrape by 1,2
复制代码
3.group by 和having的用法
having用于分组之后的条件筛选,group  by后面不能使用where,只能通过having举行条件筛选:
如,统计均匀分大于80分的男生人数、女生人数:
  1. select gander, count(*) from(select student.stuid from studentjoin gradeon student.stuid=grade.stuidgroup by 1having avg(grade)>80) t1joinstudent on t1.stuid=student.stuidgroup by 1;
复制代码
 

来源:https://blog.csdn.net/Icesj0280/article/details/111871074
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )