zoukankan      html  css  js  c++  java
  • sql 练习题

    有两张表,如下

      t_person, 员工表,包含年龄,姓名,以及部门id

      t_department,部门表,包含部门id,部门名称

    题1:获取每个部门的平均年龄

    SELECT
        d.id,
        d. NAME,
        p.avg_age
    FROM
        t_department d
    LEFT JOIN (
        SELECT
            avg(age) avg_age,
            department_id
        FROM
            t_person
        GROUP BY
            department_id
    ) p ON p.department_id = d.id

    题2:获取年龄最大的员工(可能不止一个)

    select * from t_person where age = (select max(age) from t_person);

    题3:获取每个部门年龄最大的员工

    SELECT
        *
    FROM
        t_person p
    JOIN (
        SELECT
            max(age) max_age,
            department_id
        FROM
            t_person
        GROUP BY
            department_id
    ) t ON p.department_id = t.department_id
    AND p.age = t.max_age;

    题4:获取每个部门大于平均年龄的员工

    SELECT
        *
    FROM
        t_person p
    JOIN (
        SELECT
            avg(age) avg_age,
            department_id
        FROM
            t_person
        GROUP BY
            department_id
    ) t ON p.department_id = t.department_id
    AND p.age >= t.avg_age;
  • 相关阅读:
    rabbitMQ 的简单模式
    redis 的发布订阅
    redis 的管道操作
    redis 的其他常用操作
    redis 的链表操作
    redis 的哈希操作
    redis 的字符串操作
    redis 的数据类型
    Redis的基本操作
    day27 的笔记和day 25 的保持一致
  • 原文地址:https://www.cnblogs.com/zhangxuezhi/p/11963800.html
Copyright © 2011-2022 走看看