group by ,having, 聚合函数的使用

前言: 在此之前对数据库中的group by 和having以及聚合函数一起使用的规则很模糊,今天特意总结了三者之间的使用规则,希望也能帮助到各位。

                1: count()   max()  min()   avg()  sum() 聚合函数

          作用:count() 统计总记录数,max() 取最大值,min()取最小值,avg()取平均值,sum() 总和 

        例子:select count(sid) from  grade  where cid=3;      查询参加科目编号为3考试的同学总数

                   select max(scgrade) from grade where cid=1;  查询参加科目编号为1考试的所有同学中的最高分数

                   select min(scgrade) from grade where cid=1;   查询参加科目编号为1考试的所有同学中的最低分数

                   select sum(scgrade) from grade where sid=5;  统计参加科目编号为5考试的所有同学分数的总和

                   select avg(scgrade) from grade where cid=1;   查询参加科目编号为1考试的所有同学中的平均分

       讲解: count()括号中的参数适于所有的字段,而后面的四种聚合函数主要是针对数字类型的字段。


                 2:group by  分组

                       作用:group by 是select语句的从句,用来指定查询分组条件,主要用来对查询的结果进行分组,相同组合的分组条件在                结果集中只显示一行记录

                  例子: select sid  ,count(cid)  from grade group by sid;   根据分数表(grade)查询出每一个学生(sid 学生编号)共参加了几                                                                                                                    科的考试(cid 科目编号);

                 讲解:group by 后面跟的字段必需是在select 出现的字段 ,且select 后的字段只能为group by 字段和聚合函数。


             3: having  判断

                         作用:having子句的作用就是为每一个组指定条件,像where指定条件一样,也就是说,可以根据你指定的                           条件来选择行。

                例子: select sids from  (select sid as sids from group where scgrade<60) group by sids having                                              count(sids)>=2;   查询超过两科没及格的学生id

                讲解:having必须处在group by子句之后  。


                补允:where 和having的区别。

                      where:where 子句在聚合前先筛选记录.也就是说作用在group by 子句和having子句前.

                      having:having子句在聚合后对组记录进行筛选

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值