我如何才能获得公司平均工资不到 5 年的所有员工
Posted
技术标签:
【中文标题】我如何才能获得公司平均工资不到 5 年的所有员工【英文标题】:How can I get all employees with a avg salary that are in company less than 5 years 【发布时间】:2014-07-19 10:45:02 【问题描述】:谁能帮助我,我需要为下一个案例编写查询。 需要从表中求出公司5年以上员工平均工资,公司5年以下员工平均工资。
SELECT name,avg(salary) FROM employees WHERE HIREDATE (2009 年 7 月 19 日)''
这样好吗?
【问题讨论】:
显示完整的详细信息以及您尝试了什么? 【参考方案1】:这当然不对 - 您要求的是在 2009 年 7 月 19 日之前受雇并在 2014 年 7 月 19 日之后受雇的员工,因此没有人会同时满足两者(事实上,没有人会满足第二个条件,因为您不会在数据库中找到尚未雇用的人员。
你没有说你正在使用什么数据库。另外,你到底想要什么?你想要类似:
Avg salary of employees hired at least 5 years ago = xxxxx
Avg salary of employees hired less than 5 years ago = yyyyy
粗略地说,这看起来像这样(我认为这种语法符合 mysql):
SELECT CASE WHEN HIREDATE < '2009-07-09' then 1 else 0 END AS five_years,
avg(salary)
FROM employees
GROUP BY CASE WHEN HIREDATE < '2009-07-09' then 1 else 0 END
或者,我认为这可能适用于 MySQL 以避免常量:
SELECT CASE WHEN HIREDATE < date_add(NOW(), INTERVAL -5 YEAR) then 1
ELSE 0 END AS five_years,
avg(salary)
FROM employees
GROUP BY CASE WHEN HIREDATE < date_add(NOW(), INTERVAL -5 YEAR) then 1
ELSE 0 END
【讨论】:
我写错年份了。是的,情况就是这样“至少 5 年前雇用的员工的平均工资 = xxxxx 不到 5 年前雇用的员工的平均工资 = yyyyy”谢谢,我会试试这个。以上是关于我如何才能获得公司平均工资不到 5 年的所有员工的主要内容,如果未能解决你的问题,请参考以下文章