SQL 查询:找出工资高于部门平均工资的员工
解释 SQL 查询:找出工资高于部门平均工资的员工
SELECT EMPLOYEES.*, ROUND(((EMPLOYEES.Salary - AVG_SALARY.AvgSalary) / AVG_SALARY.AvgSalary) * 100, 2) AS ExceedPercentage
FROM EMPLOYEES
INNER JOIN (
SELECT Departmentid, AVG(Salary) AS AvgSalary
FROM EMPLOYEES
GROUP BY Departmentid
) AVG_SALARY ON EMPLOYEES.Departmentid = AVG_SALARY.Departmentid
WHERE EMPLOYEES.Salary > AVG_SALARY.AvgSalary
SELECT EMPLOYEES.*, ROUND(((EMPLOYEES.Salary - AVG_SALARY.AvgSalary) / AVG_SALARY.AvgSalary) * 100, 2) AS ExceedPercentage: 从EMPLOYEES表中选择所有列,并计算出(员工工资 - 部门平均工资) / 部门平均工资 * 100的百分比,并将结果命名为ExceedPercentage。FROM EMPLOYEES: 从EMPLOYEES表中选择数据。INNER JOIN (... ) AVG_SALARY ON EMPLOYEES.Departmentid = AVG_SALARY.Departmentid: 使用内连接将子查询AVG_SALARY的结果与EMPLOYEES表连接,通过部门 ID (Departmentid) 进行匹配。(SELECT Departmentid, AVG(Salary) AS AvgSalary FROM EMPLOYEES GROUP BY Departmentid) AVG_SALARY: 子查询从EMPLOYEES表中选择部门 ID 和每个部门的平均工资,并将平均工资命名为AvgSalary。WHERE EMPLOYEES.Salary > AVG_SALARY.AvgSalary: 使用条件筛选,只选择员工工资高于所在部门平均工资的记录。
总体而言,该查询的目标是查找工资高于其所在部门平均工资的员工,并列出这些员工的个人信息,同时还计算出这些员工的工资高出部门平均工资的百分比。
原文地址: https://www.cveoy.top/t/topic/cg4f 著作权归作者所有。请勿转载和采集!