SQL分组查询

本文介绍了如何通过SQL查询统计各个部门的人数、平均工资,以及岗位分布,并运用HAVING过滤条件,分别针对工资和岗位进行深入分析。讨论了WHERE与HAVING的区别,展示了在满足特定部门和工资阈值的条件下进行的细致数据挖掘。
摘要由CSDN通过智能技术生成

9.7.1场景
统计各部门的人数情况
按照性别统计人数
按照班级统计参加比赛的人数

#(1)统计各个部门的人数
部门的ID      人数
10        6
20        3
30        4
select 
deptno,count(*) 
from 
emp 
group by 
deptno;
#(2)统计各个部门的平均工资
部门的ID      平均工资
10          600
20          300
30          400
select deptno ,AVG(sal)from emp group by deptno;

(1)分组之后的结果:和具体一条数据没有关系
(2)分组会和聚合函数一起使用
(3)需求中包含“每”,“各”这种,group by

#统计各个部门各个岗位的人数
部门的ID    岗位      人数
1      Java开发      10
2      前端开发       6
3       出纳          2
4       会计          4
select 
deptno,job,count(*)
from
emp
group  by
deptno,job;

9.7.3having

##having
需求:统计平均工资超过2000的部门
(1)算出各个部门的平均工资
(2)过滤 只留下超过2000的
select 
deptno,avg(sal) as sal_avg
from  
emp
group by 
deptno
having
sal_avg >2000;

9.7.4where与having区别
Where:过滤;分组之前的过滤 是对数据源进行过滤
Having:过滤;分组之后的过滤

#需求:统计部门30中 平均工资超过1000的岗位
条件:部门30   工资超过1000
select job,avg(sal) as sal_avg 
from emp 
where deptno = 30 
group by 
job 
having 
sal_avg >1000;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值