zoukankan      html  css  js  c++  java
  • 牛客网数据库SQL实战(16-20)

    16、统计出当前各个title类型对应的员工当前薪水对应的平均工资。结果给出title以及平均工资avg。
    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`));
    CREATE TABLE IF NOT EXISTS "titles" (
    `emp_no` int(11) NOT NULL,
    `title` varchar(50) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date DEFAULT NULL);

    select titles.title,avg(salaries.salary) as avg
    from titles
    join salaries
    on titles.emp_no = salaries.emp_no
    and titles.to_date = '9999-01-01'
    and salaries.to_date = '9999-01-01'
    group by titles.title;
    
    select titles.title,avg(salaries.salary) as avg
    from titles
    inner join salaries
    on titles.emp_no = salaries.emp_no
    and titles.to_date = '9999-01-01'
    and salaries.to_date = '9999-01-01'
    group by titles.title;

    讨论:https://www.nowcoder.com/questionTerminal/c8652e9e5a354b879e2a244200f1eaae

    17、获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary
    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`));

    select emp_no,salary
    from salaries
    where to_date = '9999-01-01'
    order by salary desc
    limit 1,1;

    讨论:https://www.nowcoder.com/questionTerminal/8d2c290cc4e24403b98ca82ce45d04db

    18、查找当前薪水(to_date='9999-01-01')排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不准使用order by
    CREATE TABLE `employees` (
    `emp_no` int(11) NOT NULL,
    `birth_date` date NOT NULL,
    `first_name` varchar(14) NOT NULL,
    `last_name` varchar(16) NOT NULL,
    `gender` char(1) NOT NULL,
    `hire_date` date NOT NULL,
    PRIMARY KEY (`emp_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`));

    SELECT e.emp_no, MAX(s.salary) AS salary, e.last_name, e.first_name 
    FROM employees AS e 
    INNER JOIN salaries AS s 
    ON e.emp_no = s.emp_no
    WHERE s.to_date = '9999-01-01'
    AND s.salary NOT IN 
    (SELECT MAX(salary) FROM salaries WHERE to_date = '9999-01-01');

    讨论:https://www.nowcoder.com/questionTerminal/c1472daba75d4635b7f8540b837cc719

    19、查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工
    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 `employees` (
    `emp_no` int(11) NOT NULL,
    `birth_date` date NOT NULL,
    `first_name` varchar(14) NOT NULL,
    `last_name` varchar(16) NOT NULL,
    `gender` char(1) NOT NULL,
    `hire_date` date NOT NULL,
    PRIMARY KEY (`emp_no`));

    select employees.last_name,employees.first_name,departments.dept_name
    from employees
    left join dept_emp
    on employees.emp_no = dept_emp.emp_no
    left join departments
    on dept_emp.dept_no = departments.dept_no;

    讨论:https://www.nowcoder.com/questionTerminal/5a7975fabe1146329cee4f670c27ad55

    20、查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth
    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`));

    select (max(salary) - min(salary)) as growth
    from salaries
    where emp_no = 10001;

    讨论:https://www.nowcoder.com/questionTerminal/c727647886004942a89848e2b5130dc2

  • 相关阅读:
    动态代理:JDK动态代理和CGLIB代理的区别
    关于国密算法 SM1,SM2,SM3,SM4 的笔记
    加密算法比较3DES AES RSA ECC MD5 SHA1等
    通过mybatis向数据库中插入日期数据
    mapreduce流程中的几个关键点
    MapReduce二次排序
    Hadoop自定义分组Group
    编译hadoop2.6.0
    ERROR [org.apache.hadoop.security.UserGroupInformation]
    Java集合分组
  • 原文地址:https://www.cnblogs.com/zsh-blogs/p/10499562.html
Copyright © 2011-2022 走看看