暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql_03:分组查询

那些年了 2021-07-28
177

四、分组查询:

1、关键字的书写顺序和执行顺序

    Selectfromwheregroup byorder by

    执行顺序:from->where->group by->select->order by

    2、按工作岗位分组然后求工资和

      SELECT job,sal FROM emp GROUP BY job;

      3、找出每个部门中的最高工资

        SELECT deptno, MAX(sal) FROM emp GROUP BYdeptno;

        4、找出每个部门不同工作岗位中的最高工资

          SELECT DEPTNO,JOB,MAX(sal) FROM emp GROUPBY DEPTNO,Job;

          5、使用having可以对分完组的数据进一步过滤,having不能单独使用,必须和group by联合使用。能用where实现的就不用having,where的效率更高。

          找出每个部门中的最高工资,并且要求最高工资大于3000。

            SELECT DEPTNO,MAX(sal) FROM emp GROUP BYDEPTNO HAVING MAX(sal)>3000;
            SELECT DEPTNO,MAX(sal) FROM emp WHERE SAL>3000 GROUP BY DEPTNO;

            6、找出每个部门平均工资高于2500的

              SELECT deptno,AVG(sal) FROM emp GROUP BYDEPTNO having AVG(sal)>2500;

              这个要求用where不好实现,用having

              7、找出每个岗位的平均工资,要求平均工资大于1500,除’manager’岗位之外,按照平均工资降序排序。

                SELECT job,avg(sal) as avgsal FROM empWHERE JOB <>'manager' GROUP BY job HAVING avg(sal)>1500 ORDER BYavgsal DESC;
                最后修改时间:2021-07-28 18:00:10
                文章转载自那些年了,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论