zoukankan      html  css  js  c++  java
  • SQL9

     题目描述
    统计各个部门的工资记录数,给出部门编码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 

    做成比做好更重要
  • 相关阅读:
    关于表单(一)
    HTML基础
    Spider -- MySQL数据库 之 增量爬取
    Spider -- 多级页面 爬取
    Spider -- 数据持久化 之 MongoDB
    Spider -- 数据持久化 之 MySQL
    Spider -- 乱码解决方案 Windows系统下
    Spider -- 数据持久化 之 csv文件
    Spider -- 常规 爬取网站 步骤
    Spider -- re 正则解析模块
  • 原文地址:https://www.cnblogs.com/fruit1024/p/12286228.html
Copyright © 2011-2022 走看看