mysql - SQL 中的员工工资

标签 mysql sql database phpmyadmin relational-database

我正在学习数据库,我有一个关于查询的问题:

如何计算平均工资,包括总工资和工资差额?

我的表格如下:

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/

相关文章:

php - 仅将 php 和 mysql insert 更改为 mysql

database - 计算 Laravel 5 每次页面加载中的查询数

sql - 选择按日期分组的最大分数,显示完整的日期时间

php - 协调具有动态行和列的表的问题

mysql - 我将如何设计这个 MySQL 模式?

php - 如何在 Android 应用程序中连接 wamp 服务器数据库并检索数据?

mysql - 有没有办法提高这个查询的性能?

php - MySQL 数据类型在 PHPMyAdmin 中没有改变......?

sql - 获取某个时间范围内的每小时

sql - 如何在多个表中获取日期列的最大日期值