07- Mysql语法整理

本文详细介绍如何使用SQL进行员工薪资的统计分析,包括总体薪资和、按部门和岗位分类的薪资总和、各岗位薪资排名及部门内薪资超过特定数额的情况。通过实际案例,展示SQL聚合函数、分组和子查询的运用。

1、求员工表所有人的薪水和

select
sum(sal) as salsum
from emp;

2、求每个部门的所有人的薪水和

select
deptno,
sum(sal) as salsum
from emp
group by deptno;

3、求每个部门的每个岗位的所有人的薪水和

select 
deptno,job
sum(sal) as salsum
from  emp
group by deptno,job;

4、求每个部门每个岗位的所有人的薪水和人数

select 
deptno,job
sum(sal) as salsum
count(deptno) as pnum
from emp
group by deptno,job;

5、求薪水和大于1500的部门

select 
deptno,
sum(sal) as salsum
from emp
group by deptno
having sum(sal)>1500;
# 方法2 子查询
select 
t.*
from
(
select 
deptno,
sum(sal) as salsum
from emp
group by deptno) as t
where t.salsum>1500;

6、每个部门的薪水最高两位的工种? 重要!!!

  1. 每个部门每个工种的薪水和
create view sal 
as
select
deptno,job,sum(sal+ifnull(comm,0)) as sal
from emp group by deptno,job;
--- comm是薪水,里面有null值

     2. 从1结果集找出薪水最高的工种有哪些(top1)?

--- 两张表都是sal
select 
a.*
from sal a 
where 
(
  select count(*) from sal b where a.deptno = b.deptno and a.sal <b.sal
) =0
order by a.deptno;

 3. 从1结果中找出top2

select 
a.*
from sal a 
where 
(
  select count(*) from sal b where a.deptno = b.deptno and a.sal <b.sal
) <=1
order by a.deptno asc, a.sal desc;

 

 

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值