MySql 数据库【分组查询】

发布于:2022-12-26 ⋅ 阅读:(314) ⋅ 点赞:(0)

MySql 数据库【分组查询】

1. group by

  1. 找出每个工作岗位的工资和?
    思路:先按照工作岗位分组,然后对工资进行求和。
mysql> select job, sum(sal) from emp group by job;

在这里插入图片描述

  1. 找出每个部门的最高薪资?
    思路:按照部门编号分组,然后求每一组的最大值
mysql> select deptno, max(sal) from emp group by deptno;

在这里插入图片描述

  1. 找出每个部门,不同工作岗位的最高薪资?
    思路:将两个字段联合成一个字段看(两个字段分组)
mysql> select deptno, job, max(sal) from emp group by deptno, job;

在这里插入图片描述

2. having

可以对分完组之后的数据进一步过滤
having 必须要和 group by 联合使用

  1. 找出每个部门最高薪资,要求显示最高薪资大于 3000 的?
    第一步:找出每个部门最高薪资,按照部门编号分组,求每一组的最大值
    第二步:要求显示最高薪资大于 3000 的
mysql> select deptno, max(sal) from emp group by deptno having max(sal) > 3000;

在这里插入图片描述
优化

where 和 having,优先选择 where,不能使用 where 再使用 having

mysql> select deptno, max(sal) from emp where sal > 3000 group by deptno;

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到