统计各个部门对应员工涨幅的次数总和,给出部门编码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
));
我们假设数据出现多少次记录就是进行了多少次的涨薪。
现将dept_emp和salaries 连接,将该表与departments连接,按dept_no分组
count(salary)即记录了该部门的总涨薪次数
select d.dept_no,d.dept_name,count(salary)
from (dept_emp de inner join salaries s on de.emp_no=s.emp_no) inner join departments d on de.dept_no=d.dept_no
group by d.dept_no