统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum
CREATE TABLE departments
(
dept_no
char(4) NOT NULL,
dept_name
varchar(40) NOT NULL,
PRIMARY KEY (dept_no
));
CREATE TABLE dept_emp
(
emp_no
int(11) NOT NULL,
dept_no
char(4) NOT NULL,
from_date
date NOT NULL,
to_date
date NOT NULL,
PRIMARY KEY (emp_no
,dept_no
));
CREATE TABLE salaries
(
emp_no
int(11) NOT NULL,
salary
int(11) NOT NULL,
from_date
date NOT NULL,
to_date
date NOT NULL,
PRIMARY KEY (emp_no
,from_date
));
思路:
departments、dept_emp、salaries三张表
然后我们以departments为基准,左链接dept_emp,然后再左链接salaries表,最后求员工涨幅次数和就是对departments的dept_no进行分组求和。
代码:
select dep.dept_no,de.dept_name,count(*) as sum
from departments as de left join dept_emp as dep on de.dept_no = dep.dept_no
left join salaries as sa on dep.emp_no = sa.emp_no
group by de.dept_no