MySQL显示,每年,该年度最大的部门及其平均工资

  • 本文关键字:平均工资 每年 显示 MySQL mysql
  • 更新时间 :
  • 英文 :


根据这个问题,产出应该是"每年最大的部门,然后是该部门的平均工资"。在MySQL数据库中,salary和dept_emp表中有"from_date"one_answers"to_date"列。并没有任何具体的年份包含所需最大部门和工资的确切年份。

在我下面的查询中,它两次或多次返回同一年份。但我每年只需要最大的部门及其平均工资。但我不确定我必须在哪一天才能得到正确的结果。

注:在工资表中,"from_date"是指一个人从当年到"to_date"年开始领取工资的时间。在dept_emp表中,"from_date"大约是每个人从工作年开始到"to_date"的时间。除了这些日期之外,没有其他日期。

我想举一个例子来澄清这个问题:

例如2000年,department Finance,Number of emp-34000-avg_salary-56700。2000年,最大的部门是财务部门,该部门的平均工资为56700英镑。

提前感谢您的帮助:(

SELECT 
dept_name AS Department_Name,
COUNT(de.emp_no) AS Number_of_Employees,
YEAR(s.from_date) AS Year,
AVG(salary) AS Average_Salary
FROM
dept_emp de
JOIN
departments d ON de.dept_no = d.dept_no
JOIN
salaries s ON de.emp_no = s.emp_no
GROUP BY YEAR(s.from_date)

为什么不尝试在Number_Of_Employes列上添加MAX子句?

SELECT 
dept_name AS Department_Name,
MAX(COUNT(de.emp_no)) AS Number_of_Employees,
YEAR(s.from_date) AS Year,
AVG(salary) AS Average_Salary
FROM
dept_emp de
JOIN
departments d ON de.dept_no = d.dept_no
JOIN
salaries s ON de.emp_no = s.emp_no
GROUP BY YEAR(s.from_date)

最新更新