mysql求指定年份平均工资

mysql求指定年份平均工资,第1张

报告期实际支付的全部职工工资总额除报告期全部职工平均人数。求mysql求指定年份平均工资公式为报告期实际支付的全部职工工资总额除报告期全部职工平均人数。MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。

在mysql中,金额用“DECIMAL”类型。DECIMAL类型是专门为财务相关问题而设计的数据类型,能够解决数据的范围和精度的问题,常用于货币数据,如价格,工资,帐户余额等;它实际上是以字符串的形式存放的,可在定义时划定整数部分以及小数部分的位数,语法“DECIMAL(M,D)”,参数M是数字的最大数(精度),参数D是小数点右侧数字的数目(标度)。

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

-- 查询出每个部门的平均薪资,起别名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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8631490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存