数据来源:POINT. 表 t_employees,表 t_dept_emp,表 t_departments
练习内容:报表制作
一个SQL入门网站:http://www.w3school.com.cn/sql/index.asp
Q:做一张报表,显示出每一个部门男女员工的比例
SELECT
dept_name AS '部门',
COUNT(IF(X.gender = 'M',1,NULL))/COUNT(*) AS '男员工占比',
COUNT(IF(X.gender = 'F',1,NULL))/COUNT(*) AS '女员工占比'
FROM t_departments AS C
LEFT JOIN (
SELECT A.emp_no,B.dept_no,A.gender
FROM t_employees AS A
LEFT JOIN t_dept_emp AS B ON A.emp_no = B.emp_no
) AS X
ON C.dept_no = X.dept_no
WHERE dept_name IS NOT NULL
GROUP BY dept_name
注:SQL中的if语句
IF(expr1, expr2, expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。