我正在学习数据库,我有一个关于查询的问题:
如何计算平均工资,包括总工资和工资差额?
我的表格如下:
Staff: staffNo(PK), staffSalary
我编写的查询是
SELECT staffNo, staffSalary,staffSalary - (
SELECT AVG( staffSalary )
FROM Staff ) AS salDiff
FROM Staff
WHERE staffSalary > (
SELECT AVG( staffSalary )
FROM Staff )
这个查询只给我平均工资差异和员工实际工资,我如何找出我拥有的每列数据的实际平均工资? 在此示例中是否可以使用联接?
最佳答案
假设每个员工有一行,我相信您要求的是以下内容(对于所有收入高于平均水平的员工):
select staffNo,
(Select avg(staffsalary) from staff) as avgSalary,
(select staffSalary from staff where staffNo = S.StaffNo) as Salary,
(Select staffSalary - (select avg(staffSalary) from staff) from staff where staffNo = S.staffNo ) as salDiff
from staff S
where staffSalary > (Select avg(staffSalary) from staff)
不确定为什么需要加入...除非您想查看所有用户的工资,在这种情况下,您只需删除 where 子句,它就会向您显示所有员工。
关于mysql - SQL 中的员工工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20939995/