数据库SQL实战(牛客网):统计各个部门的工资记录数

统计各个部门的工资记录数,给出部门编码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与departments连接成一张新的临时表,然后再与第三张表salaries连接,最后按dept_no后利用count()函数求薪水的记录行数

select a.dept_no , a.dept_name , count(c.salary) as sum
from (dept_emp as b join departments as a on a.dept_no = b.dept_no)
join salaries as c on b.emp_no = c.emp_no
group by a.dept_no;
发布了292 篇原创文章 · 获赞 73 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43777983/article/details/104504741