900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > mysql聚合函数统计_mysql学习-mysql聚合函数和分组统计

mysql聚合函数统计_mysql学习-mysql聚合函数和分组统计

时间:2018-09-10 18:52:40

相关推荐

mysql聚合函数统计_mysql学习-mysql聚合函数和分组统计

一、聚合函数

聚合函数。称为统计函数

常用的聚合函数

count()总量数

max()最大值

min()最小值

sum()和

avg()平均值

例:查询部门30的总人数(查询总人数,根据empno编号确定有多少编号,就有多个人)

select count(empno)from emp where deptno=30; count()括号是统计总数量,必须要传的

⚠️聚合函数在统计时会忽略null值。

select sum(sal)where emp where deptno=10;

select avg(sal)where emp where deptno=10;

例:查询部门30的最高工资、最低工资、平均工资

select max(sal),min(sal),avg(sal)from emp where deptno = 30;

二、分组统计

语法:

select 列名1 别名1,列名2 别名2...

from 表名1 别名1 inner join 表名2 别名2 on 多表间的关联关系

where 条件(分组之前的条件)

group by 分组列

having (分组之后的条件)

order by 排序1 asc|desc,排列2 asc|desc....;

举例:

查询每个部门的平均工资

select deptno,avg(sal)

from emp

group by deptno;

select dname ,avg(sal)

from emp e,dept d

where e.empno = d.depno

group by d.dname

⚠️:在mysql中分组统计时可以查出分组列的其他列,而在orcal中不行

建议将要查询出的列使用分组列

查询出部门的名称以及每个部门的员工数量

select d.dname,count(e.empno)

from dept d left join emp e on d.deptno = e.deptno

group by d.dname

查询平均工资大于2000的部门的编号或者平均工资

select deptno , avg(sal)from empgroup by deptnohaving avg(sal)>2000;

查询出非销售人员的职位名称,以及从事同一工作的雇员的月工资综合,并且满足工资综合大于5000,查询结构按照月工资综合生序排序

解题思路:

1、先写出整体的关键字出来

2、思考需要查询几张表,把可能查询的表下载from 后。 只查询emp表

3、考虑有没有分组之前的条件, 非销售人员的职位。 job!=‘salesman’

4、思考需要按照什么分组。 按照job分组

5、思考分组后的条件。 满足工资综合大于5000. sum(sal)>5000

6、升序排序

select job ,sum(sal) sum

from emp

where job!='salesman'

group by job

having sum(sal)>5000

order by sum

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。