将两个select语句与2个表中的2列分开,MySQL

时间:2016-02-28 22:15:18

标签: mysql sql

我想要获得每个部门中女性的百分比。

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列”。我觉得有办法设置它,我只是不知道该怎么做。

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