【发布时间】:2020-07-31 07:08:37
【问题描述】:
根据这个问题,输出应该是“每年最大的部门,然后是那个部门的平均工资”。在 MySQL 数据库中,salary 和 dept_emp 表中有 'from_date' 和 'to_date' 列。并且没有任何特定年份包含所需的最大部门和薪水的确切年份。
在我下面的查询中,它在同一年返回两次或更多次。但我每年只需要最大的部门及其 avg_salary。但我不确定我必须采取哪个日期才能检索到正确的结果。
注意:在薪水表中 -'from_date' 是关于从那一年到 'to_date' 年开始获得薪水的一个人。而在 dept_emp 表中,'from_date' 大约是每个人的工作开始年份到 'to_date'。除了这些日期之外,没有添加日期。
我想举个例子来说明问题:
例如 2000 年,部门-财务,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)
【问题讨论】:
-
不清楚吗?如果是的话,我会努力让它变得更好
-
如果我认为链接没有用,我真的不会费心提供链接
标签: mysql