解释 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: 使用条件筛选,只选择员工工资高于所在部门平均工资的记录。

总体而言,该查询的目标是查找工资高于其所在部门平均工资的员工,并列出这些员工的个人信息,同时还计算出这些员工的工资高出部门平均工资的百分比。

SQL 查询:找出工资高于部门平均工资的员工

原文地址: https://www.cveoy.top/t/topic/cg4f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录