扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
第一步:先查询出每个部门的平均薪资,起别名t ,用作临时表(一会放入子查询)
加查ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
-- 查询出每个部门的平均薪资,起别名t ,用作临时表(一会放入子查询)
SELECT
e.departmentid,AVG(e.salary) as avgsal
FROM
employee as e
GROUP BY
departmentid;
结果图:

最终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;
最终查询后的结果图:

情景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;
结果图:

最终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
在D2中输入或复制粘贴下列公式
=INDEX({15,10,5,0,-5,-10,-20}%,MATCH(C2,{"AA","A","B+","B","B-","C","CC"},))
下拉填充
在E2中输入或复制粘贴下列公式
=B2*(1+D2)
下拉填充
看你业务情况,这里奖学金等级应该不多,可以用enum。其实你就算用int都行,数据量不大的话影响是微乎其微的。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流