MySQL分组查询

9.7分组查询  group by

9.7.1场景

(1)分组之后的结果:和具体一条数据没有关系

(2)分组后和聚合函数一起使用

(3)需求中包含:“每”,“各”这种,group by

9.7.2 group up

统计各个部门的人数

部门的ID 人数  平均工资

10 6     600

20 3     300

30 4     400

select  

deptno,count(*),avg(sal)

from

   emp

group by

   deptno

 

 

统计各个部门的平均工资。

部门的ID 平均工资

10 600

20 300

30 400

统计各个部门的人数情况和平均工资

 Select

 deptno,count(*),avg(sal)

from emp

group by

 deptno;

统计各个部门各个岗位的人数

部门的ID 岗位   人数

1   java开发 10

1   前端开发 6

2 出纳 2

2 会计 4

 select

deptno,job,count(*)

from

emp

 group by

deptno,job;

 

 

 

9.7.3 having

需求:统计平均工资超过2000的部门。

(1)算出各个部门的平均工资。

(2)过滤,只留下超过2000的。

select

deptno,avg(sal) as sal_avg

from emp

group by deptno

 having sal_avg > 2000;

 

9.7.4 wherehaving的区别

Where:过滤;分组之前过滤; 对数据源进行过滤

Having:过滤;分组之后过滤

 

过滤部门是30的平均工资超过1000

 select

 job,avg(sal) as sal_avg

 from

 emp

 where deptno=30

 group by

 job

 having

 sal_avg >1000;

 

MySQL分组查询

上一篇:微信小程序篇(微信小程序的支付)


下一篇:免费微信公众号专用h5在线电影票API