关于group by 、group by having、where group by与 group by order by

现有表 score

name      kecheng     fenshu
张三     语文       81
张三     数学       75
李四     语文       76
李四     数学       90
王五     语文       81
王五     数学       100
王五     英语       90

group by 的使用

在使用group by 时,有一个规则需要遵守,即出现在select列表中的字段,如果没有在聚合函数中,那么必须出现在group by 子句中。(select中的字段不可以单独出现,必须出现在group语句中或者在组函数中。)

select  a.name,a.fengshu   from score a  group by a.name   这是错误的

select  a.name,min(a.fengshu)  from score a group by a.name  这是可以的


group by having的使用

having的筛选是在分组以后,并且针对分组中的每一条数据,只要有一条不符合要求,这一组都不会被筛选出来

筛选出每一门课程分数都大于80的学生姓名

select a.name  from score a group by a.name having min(a.fengshu)>80


where group by

where 的筛选是在分组之前,所以在where 里面可以出现任意字段

select a.namefrom score a

where a.fenshu>80

group by a.name


group by  ordey by

select a.fenshu from score a group by a.fenshu order by a.fenshu


ps:到底啥时候用group by ?

看select后的字段 能不能成为一个唯一标识,如果不能,则使用group by 可以分组





  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值