我正在使用datacharmer test_db数据库进行此查询。 (方案:https://cdn-images-1.medium.com/max/1200/0 * T4jknBaeaS3y0nKr.png)
我想显示每年雇用了多少名男性和女性雇员。我的意思是第一次将它们添加到部门。
这是我所拥有的查询,但是我不想显示MIN(from_date)字段,是否有更好的解决方案?
SELECT year(from_date) hired_year , COUNT(de.emp_no), MIN(from_date), gender
FROM dept_emp de
INNER JOIN employees e
ON e.emp_no = de.emp_no
GROUP BY gender, hired_year
ORDER BY hired_year
Dept_emp表:
emp_no dept_no from_date to_date 10010 d004 1996-11-24 2000-06-26 10010 d006 2000-06-26 9999-01-01 10011 d009 1990-01-22 1996-11-09 10012 d005 1992-12-18 9999-01-01 10013 d003 1985-10-20 9999-01-01 10014 d005 1993-12-29 9999-01-01
预期结果
year count gender 1985 10992 M 1985 7388 F 1986 12134 M 1986 8020 F 1987 12319 M 1987 8115 F 1988 12362 M 1988 8374 F
答案 0 :(得分:0)
尝试一下:
SELECT year(de.from_date) hired_year , Count(*) as Count,e.gender
FROM dept_emp de INNER JOIN
employees e
ON e.emp_no = de.emp_no
GROUP BY hired_year,e.gender
Order BY hired_year;
答案 1 :(得分:0)
您可能需要额外的GROUP BY
:
SELECT YEAR(first_date), gender, COUNT(*)
FROM (
SELECT emp_no, MIN(from_date) AS first_date
FROM dept_emp
GROUP BY emp_no
) AS g
JOIN employees AS e ON g.emp_no = e.emp_no
GROUP BY YEAR(first_date), gender
但是我想如果员工在同一日期被放到部门中,您可以简单地使用hire_date
。