香芋粥

zhongyh
2370 号测试 成员, 2020-03-19 02:34:51 加入
2.3k
个人主页浏览
  • 20200327 连接子查询作业

    2020-07-24 10:57

    根据emp和dept表完成下列作业:

    1.列出至少有三个员工的所有部门和部门信息。

    select * from dept1 d INNER JOIN
    (select DEPTNO, count() 部门人数 from emp1 GROUP BY DEPTNO HAVING count() >= 3) e
    on d.DEPTNO=e.DEPTNO;

    2.列出受雇日期早于直接上级的所有员工的编号,姓名,部门名称

    select t.ename,t.empno,d.dname from dept1 d,
    (select a.ename,a.empno,a.deptno from emp1 a where a.hiredate<(select hiredate from emp1 b where b.empno=a.mgr))t
    where t.deptno=d.deptno;

    3.列出职位为“CLERK”的员工姓名和部门名称,部门人数:

    select e1.ename,e1.job,t.dname,t.部门总人数 from emp1 e1 left join
    (select d.deptno,d.dname,count(*) 部门总人数 from dept1 d
    INNER JOIN emp1 e
    on d.deptno=e.deptno GROUP BY d.dname) t
    on e1.deptno= t.deptno where e1.job='CLERK'

  • 20200326 连接子查询作业

    2020-07-24 10:57

    #1、用一条SQL语句查询出每门课都大于80分的学生姓名。
    -- 每门课就要按学生进行分组,每门课都大于80意思就是所有课中最小的分数要大于80
    -- 解决思路:这里需要用到聚合函数min(score),查询出最低分数大于80分的学生即可。使用了聚合函数,条件就需要使用having语句。
    SELECT name from TestScores GROUP BY name having MIN(score)>80;

    思路二:查出不在(小于或等于八十分的学生姓名)的学生

    -- 子查询的结果作为外部查询的条件
    select DISTINCT name from TestScores where name not in (select name from TestScores where score <= 80);

    -- 子查询的结果作为表
    select * from(SELECT name,MIN(score) 最小成绩 from TestScores GROUP BY name) s where s.最小成绩 > 80;

    #子查询的关联查询
    SELECT * FROM TestScores t1 where not exists (select * from TestScores t2 where t1.name=t2.nameand score <= 80);

    -- 2、查出所有购入商品为两种或两种以上的购物人记录

    select 购物人 from 购物单 GROUP BY 购物人 HAVING COUNT() >= 2;
    SELECT * from 购物单 where 购物人 in (select 购物人 from 购物单 GROUP BY 购物人 HAVING COUNT(
    ) >= 2);

  • 20200324 连接查询作业

    2020-07-24 10:57

    -- 根据课上的emp和dept表完成下列作业:
    -- 1、查询张姓员工的员工信息和所在部门信息。
    #判断以哪张表为基表,看最主要的是得到那张表的信息,或者要筛选的是哪那张表的信息
    SELECT * from emp e left JOIN dept d on e.dept_id =d.id where e.name like '张%';

    -- 2、查询张三丰管理了几个员工
    select count(*) from emp e1 INNER JOIN emp e2 on e1.leader=e2.dept_id and e1.name='张三丰';

    -- 3、查询出所有实习员工(实习员工无部门信息)
    select * from emp e left join dept d on e.dept_id = d.id where d.id is NULL;

  • 阿里淘宝的 S1 级别 bug,到底是谁的锅?

    2020-07-24 10:57

    我们测试要是不知道原因,还不得背锅,太难了😭