mysql对员工进行等级评定_Mysql_案例3:查询出部门中所有人的平均薪资等级

本文提供两个案例,展示如何使用MySQL查询部门中所有员工的平均薪资等级。首先查询每个部门的平均薪资并找到对应的薪资等级,然后计算部门内员工薪资等级的平均值。涉及到的表包括employee、salgrade和department。
摘要由CSDN通过智能技术生成

案例:查询出部门中所有人的平均薪资等级

背景:当前数据库的department表、salgrade表、employee表,数据分别如下:

dbc9120b6df249756f225e0644b9b5a2.png

情景1、查询部门中所有人的平均薪水的等级

第一步:先查询出每个部门的平均薪资,起别名t ,用作临时表(一会放入子查询)

-- 查询出每个部门的平均薪资,起别名t ,用作临时表(一会放入子查询)

SELECT

e.departmentid,AVG(e.salary) as avgsal

FROM

employee as e

GROUP BY

departmentid;

结果图:

8b963bf042ef64d62402797d2baa6595.png

最终SQL代码:再为 t 表里的平均薪资查询出对应的薪资等级

-- 用查询出来的每个部门平均薪资表t,去匹配薪资等级表,找出每个部门的平均薪资是属于什么薪资等级

SELECT

t.departmentid,s.grade

FROM

(SELECT

e.departmentid,AVG(e.salary) as avgsal

FROM

employee as e

GROUP BY

e.departmentid) t

INNER JOIN

salgrade s

on

t.avgsal BETWEEN s.losal and s.hisal

ORDER BY

t.departmentid;

最终查询后的结果图:

bc5274e398e36d9d709d85edafafff8e.png

情景2、查询部门中所有人的薪资等级的平均等级

第一步:先查出每个部门里员工对应的薪资等级,起别名为 t ,用作临时表(一会用作子查询)

SELECT

e.*,s.grade

FROM

employee e

INNER JOIN

salgrade s

ON

e.salary BETWEEN s.losal and s.hisal

ORDER BY

departmentid;

结果图:

61aef0aa1e33022811270ea5cf30ded9.png

最终SQL语句:再对 t 表里的每个部门员工的薪资等级求均值

SELECT

t.departmentid,AVG(t.grade) as avgra

FROM

(SELECT

e.*,s.grade

FROM

employee e

INNER JOIN

salgrade s

ON

e.salary BETWEEN s.losal and s.hisal

ORDER BY departmentid ) t

GROUP BY t.departmentid;

结果图:

6e9b6a98579a970c52bf1ecc88eedbd0.png

标签:查询,employee,departmentid,Mysql,薪资,等级,SELECT

来源: https://www.cnblogs.com/wodexk/p/10680416.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值