Oracle分组查询

Oracle分组查询

select 组信息 
from 表名 
[where条件] 
group by 分组字段 
[having分组条件] 
[order by 排序字段 asc|desc];
常用的聚合函数:
count(字段名|*):求总的记录数;
sum(字段名):求和;
avg(字段名) :求平均值;
max(字段名):求最大值;
min(字段名):求最小值;
--案例:查询每个部门的平均工资
select deptno,round(avg(sal) ,2) as deptavgsal
from emp
group by deptno;

--案例:查询每个部门的平均工资,大于2000的
select deptno,round(avg(sal) ,2) as deptavgsal
from emp
group by deptno
having  round(avg(sal) ,2) >2000;
----having 和 where的区别:where后面不能跟聚合函数
--什么时候使用where条件,什么时候应该使用having条件?
--1.如果分组前就能够确定的条件就使用where,如果分组后才能够确定的条件就使用having;
--2. where条件不能够使用聚合函数;having可以使用聚合函数;   
select语句执行顺序从先到后:
from > where > group by> having > select > order by
--为统计的结果count(*)取一个别名total,因为执行顺序的原因,即total这个别名只能在order by 上使用.
--分组统计每个部门员工工资大于2000,并按照升序的方式显示每组人数大于1的结果

select deptno,count(*)total 
from emp where sal>2000 
group by deptno 
having count(*)>1 
order by total asc;
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值