根据这个问题,产出应该是"每年最大的部门,然后是该部门的平均工资"。在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)