sql查询篇,group by查询

目录

一、 GROUP BY 查询


一、 GROUP BY 查询

group by 为分组查询。先看一个示例:

pl/sql中查询出oracle数据库的一张表:

查询出学校一年级,一班的男/女生各有多少人,且男/女生的最大年龄是多少。SQL如下

select school,grade,class,sex,count(sex),max(age) from STU where 
class='1班' and grade='一年级' group by sex,class,grade,school

分析:分组查询由select, from, where, group by, having, order by 以及聚合函数等组成。

以上分组语句的查询结果为:

聚合函数有: sum(求和)、 count(*)(记录数)、 max(最大值)、 min(最小值)、avg(平均值)。

GROUP BY 后面跟 分类聚合的字段。

HAVING 子句 对分类后的结果再进行筛选。

WHERE 子句 对分类聚合前的数据进行筛选。

注:在SELECT 中查询的字段 必须使用聚合函数 或者 不使用聚合函数而出现在GROUP BY 子句中。而 GROUP BY 子句中出现的字段 不一定要写在 SELECT 语句后。

HAVING 子句的使用:查询男/女分组后count()数大于4的。sql语句如下

select school,grade,class,sex,count(sex),max(age) from STU where 
class='1班' and grade='一年级' group by sex,class,grade,school 
having count(sex)>4

使用having 子句的查询结果为:

 说明:GROUP BY 子句后多个字段的分组,如 group by a,b,c 先对a 属性进行分组,其次对b 属性,最后c 属性。但是,最终分组结果受 group by 子句中 最为 细分 的属性字段影响。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值