Mysql 从入门到精通(5)-表的设计一对一,一对多,多对多

###练习:  1. 每个部门的人数,根据人数排序     select deptno,count(*) c from emp     group by deptno order by c;  2. 每个部门中,每个主管的手下人数     select deptno,mgr,count(*) from emp where mgr is not null group by deptno,...
摘要由CSDN通过智能技术生成

###练习:

  1. 每个部门的人数,根据人数排序
     select deptno,count(*) c from emp
     group by deptno order by c;
  2. 每个部门中,每个主管的手下人数
     select deptno,mgr,count(*) from emp where mgr is not null group by deptno,mgr;
    
     select d.deptno,e.mgr,count(e.ename)
     from emp e right join dept d
     on e.deptno=d.deptno 
     where e.mgr is not null
     group by d.deptno,e.mgr;
    - 查询每个部门的人数(结果中包含40号部门)
    select d.deptno,count(e.ename)
    from emp e right join dept d
    on e.deptno=d.deptno
    group by d.deptno;
  3. 每种工作的平均工资
     select job,avg(sal) from emp group by job;
  4. 每年的入职人数 
     select extract(year from hiredate) y,count(*) from emp group by y;
  5. 少于等于3个人的部门信息
     select d.*,count(e.ename) c
     from emp e right join dept d
     on e.deptno=d.deptno
     group by d.deptno
     having c<=3;
  6. 拿最低工资的员工信息
     select * from emp where sal=(select min(sal) from emp);
  7. 只有一个下属的主管信息
      -查询只有一个下属的主管编号
     select mgr from emp 
     where mgr is not null group by mgr 
     having count(*)=1;
    -通过得到的每个主管编号查询主管的详情
     select * from emp where empno in (select mgr from emp 
     where mgr is not null group by mgr 
     having count(*)=1);
  8. 平均工资最高的部门编号
      -得到最高的平均工资
     select avg(sal) a from emp group by deptno order by a desc limit 0,1;
    -通过平均工资值去查询对应的部门编号
     select deptno from emp group by deptno 
     having avg(sal)=(select avg(sal) a from emp group by deptno order by a desc limit 0,1); 
  9. 下属人数最多的人,查询其个人信息
      -得到最多的下属人数
     select count(*) c from emp group by mgr order by c desc limit 0,1;
    -通过人数查询对应的领导编号
     select mgr from emp group by mgr having count(*)=(select count(*) c from emp group by mgr order by c desc limit 0,1);
    -通过领导编号得到个人信息
     select * from emp where empno in(select mgr from emp group by

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值