SQL9

作者: xmgh1024 | 来源:发表于2020-02-09 09:39 被阅读0次

题目描述

统计各个部门的工资记录数,给出部门编码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`));

解题思路:

首先题目要求统计各个部门的工资记录,自然联想到要用到group by 分组和count(salary)统计次数。

但是这些信息不在同一张表中,所以用到数据关联查询,以部门表为主体,关联表dept_emp和表salaries

故参考答案为:

    select ds.dept_no,ds.dept_name,count(s.salary)as sum from departments ds

    left join dept_emp dp on ds.dept_no=dp.dept_no 

    left join salaries s on dp.emp_no=s.emp_no

    group by ds.dept_no 

相关文章

  • SQL9

    题目描述 统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及次数sum CREA...

网友评论

      本文标题:SQL9

      本文链接:https://www.haomeiwen.com/subject/kfrgxhtx.html