mysql加强(3)~分组(统计)查询
2022/1/27 19:05:13
本文主要是介绍mysql加强(3)~分组(统计)查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
作者:一乐乐
欢迎大家来一乐乐的博客园
一、分组(统计)
查询
1、语法 :
select [distinct] *| 分组字段1[别名] [,分组字段2[别名],...] | 统计函数
from 表名 [别名]
[where 条件(s)]
[group by 分组字段1[,分组字段2]]
[having 分组后的过滤条件(可以使用统计函数)]
[order by 排序字段 asc|desc[,排序字段 asc|desc]];
2、注意分组的细节:
❀ 分组查询:select 后的字段必须是分组字段
(跟在group by 后面的字段) 或 统计函数字段
#错误使用分组(统计)查询【查询的字段不是分组字段】 select empno, count(empno) from emp;
❀ 不能在where 子句中限制组,即不能在where子句中使用组函数(统计函数)
。
#错误使用分组(统计)查询【组函数出现在where的子句中】 select avg(sal) from emp where avg(sal) > 2000 group by deptno;
❀ 对分组的结果进行限制(过滤)---使用having
对组
进行筛选
#查询各个部门的平均工资 select deptno, avg(sal) from emp group by deptno; #查询平均工资高于2000的部门和其平均工资 ('平均工资高于2000'是分组之后的筛选条件) select avg(sal) from emp group by deptno having avg(sal) > 2000;
❀ 并列分组:
-
单列分组:水果分为苹果、香蕉、葡萄。一共分为3个组。
-
什么是并列分组:水果分为苹果、香蕉、葡萄;然后苹果又可以分为红富士、丑苹果;香蕉又分为芭蕉、小米蕉;葡萄又分为红提、青提。一共分成6个组。
#查看各个部门和岗位的平均工资 select deptno, job, avg(sal) from emp group by deptno, job;
■ sql语句的执行顺序:从哪张表过滤掉不合法数据,然后分组(对分组结果再过滤一下)显示出来,进行排序、分页。
from where group by having select order by limit
■ where 和 having 执行的先后:
① where 是在分组之前
进行筛选,先过滤掉不合法数据, 在 where 之中不能使用统计函数(组函数)。
② having 是在分组之后
进行筛选,对组的结果进行过滤。
● 文章来源于:一乐乐的博客园
● 转载请注明出处
这篇关于mysql加强(3)~分组(统计)查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程