本文最后更新于:2022年4月9日 中午
题目描述
统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门在salaries表里面有多少条记录sum
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 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_no
dept_name
sum
d001
Marketing
24
d002
Finance
14
d003
Human Resources
13
d004
Production
24
d005
Development
25
d006
Quality Management
25
题解
select de.dept_no, dm.dept_name, count (*) as sum from dept_emp as de inner join departments as dm on de.dept_no=dm.dept_noinner join salaries as s on de.emp_no=s.emp_nogroup by de.dept_no
备注:
第一次连接,将dept_emp
表扩展了dept_name
列,第二次连接salaries
表,再按部门分组统计;
也可以先dept_emp
连接salaries
再连接departments