2016-02-28 30 views
0

我想获得每个部门中女性的百分比。将2个select语句与2个表中的2个列分开,MySQL

表: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列”。我觉得有一种方法来设置它,我只是没有意识到如何做到这一点。

回答

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 
+1

完美,谢谢! – LearningProcess