我想要获得每个部门中女性的百分比。
table:dept_emp
| emp_no (Employee Number) | dept_no (department #)|
+--------------------------+-----------------------+
| 5 | 0 |
| 500 | 1 |
+--------------------------+-----------------------+
表:员工
| emp_no (Employee Number) | gender |
+--------------------------+-----------------------+
| 5 | M |
| 500 | F |
+--------------------------+-----------------------+
这就是我所拥有的:
(这将使我得到每个部门的女性人数)
SELECT dept_no, count(*) FROM employees
INNER JOIN dept_emp
ON employees.emp_no=dept_emp.emp_no
WHERE (gender = 'F')
GROUP BY dept_no
(这将获得每个部门的总人数)
SELECT dept_no, count(*) FROM employees
INNER JOIN dept_emp
ON employees.emp_no=dept_emp.emp_no
GROUP BY dept_no
如何将这两个除以100倍?同时仍然显示哪个号码与特定部门对齐。我尝试过一些东西,但我一直都会遇到错误:“操作数应该包含1列”。我觉得有办法设置它,我只是不知道该怎么做。
答案 0 :(得分:2)
尝试使用条件计数:
SELECT dept_no
, ( coalesce(sum(gender = 'F'), 0) / count(*) ) * 100
FROM employees
JOIN dept_emp ON employees.emp_no=dept_emp.emp_no
GROUP BY dept_no