6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化
1组函数 avg(),sum(),max(),min(),count()案例:
selectavg(sal),sum(sal),max(sal),min(sal),count(sal)
from emp
/
截图:
2 组函数和null在一起
案例:求员工的平均奖金
错误sql:
select avg(comm) 方式1,sum(comm)/count(comm)方式2,sum(comm)/count(*) 方式3
from emp;
截图:
错误原因:
select count(comm),count(*) from emp;
分析:
--组函数自动滤空,组函数忽略空值
--修正函数的滤空
select count(nvl(comm,0)),count(*) fromemp;
3.分组数据
A 求各个部门的平均工资
思路:需要把各个部门的数据划分….10部门 20部门 30部门….分组……
select deptno,avg(sal)
from emp
group by deptno;
运行结果:
B 组函数设计的本意
(1)、select检索的列 必须要位于group by后面的集合列中
(2)、组函数设计的本意:必须要在分组数据之上,进行结果集的检索….
注意:group by子句要求:所有在select中出现的列,都必须在出现group by分组子句中。
select a, b, c
from emp
group by a, b, c,d; 这种格式是对的,因为在select后的a、b、c都在groub by后面。
select a, b, f
from emp
group by a, b, c,d; 这种格式是错的,因为在select后的f不在group中
4 在GROUP BY子句中包含多个列
--按部门 不同的职位 统计平均工资
--先按照部门分组,在按照job分组,如果deptno和job一样,就是同一组,然后求平均工资。
--求各个部门的,每一个工种的平均工资
select deptno,job,avg(sal),count(deptno)
from emp
group by deptno,job
order by 1;
截图:
5 分组过滤
--查询各个部门的平均工资
--进一步,查询平均工资大于2000的部门
select deptno,avg(sal)
from emp
group by deptno
having avg(sal) > 2000;
6 having和where子句区别
求10号部门的平均工资
方法1:先分组,在过滤
select deptno,avg(sal)
from emp
group by deptno
having deptno=10;
方法2:先过滤再分组
select deptno,avg(sal)
from emp
where deptno = 10
group by deptno;
7 关于sql优化
select * from emp;
select deptno, ename, ..., from emp 把要显示的所有的列都写出来,速度快,,不需要"翻译"
select *form emp
where (deptno = 10) and (deptno = 20) and (deptno=30)
<---------
oracle解析逻辑表达式 的方向....从右向左
6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化相关推荐
- 6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化...
1组函数 avg(),sum(),max(),min(),count()案例: selectavg(sal),sum(sal),max(sal),min(sal),count(sal) from ...
- mysql min函数 结果全为null_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)
为了汇总数据而不把实际的检索出来,MySQL 提供了专门的函数,聚集函数 好处:可以将检索数据进行分析和报表生成 一.聚集函数(aggregate function): 运行在行组上,计算和返回单个值 ...
- MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...
单表查询 select 建个表 1.查询表中所有学生的信息 2.查询表中所有学生的姓名和对应的英语成绩 3.过滤表中重复数据 4.在所有学生分数上添加10分特长分 下面方式并没有改变底层的数据记录,这 ...
- C/C++中使用函数memset对int型数组赋值(0,-1,max,min)
memset函数在string.h文件中 以二维数组int g[N][N]为例: 数组初始化为0使用: memset(g,0,sizeof(g)); //初始化为0 数组初始化为-1: memset( ...
- Java8 Stream详解~聚合(max/min/count)
max.min.count这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计.Java stream中也引入了这些概念和用法,极大地方便了我们对集合.数组的数据统计工作. 「案例一:获 ...
- Excel数值函数(6):Average,Max,Min,Count等数据统计函数
01 Average ,求平均值 如下图所示,"C15:H15"单元格区域的平均值是12.5: 02 Max,求最大值 如下图所示,单元格区域"C16:F16" ...
- Scala集合的常用方法:sum/max/min/product
- python读取多行函数_Python3基础 __doc__ 单行与多行函数文档
? ???? Python : 3.7.0 ?????? OS : Ubuntu 18.04.1 LTS ?????? IDE : PyCharm 2018.2.4 ????? Conda ...
- oracle之4多行函数之分组函数
常用的分组函数: Sum()求和: 聚合函数Count(*)求个数: Avg()求平均值: 注意:求平均数的方法不同得到的值可能不同. 原因:因为count(*)和count(comm)不相等,cou ...
最新文章
- ubb代码转化html代码
- lvm自动扩容到固定分区脚本
- android或java timer声明
- 洛谷P4315 月下“毛景树”
- 通过实例理解 Go 逃逸分析
- vue-js 特殊变量$event常识
- java中super_java中super的两种用法
- 苹果优化iPhone 12 Pro人脸识别,指纹识别还是别想了
- 【Elasticsearch】es 7.8.0 java 实现 BulkRequest 批量写入数据
- Asp.net Boilerplate 源码无法打开——找不到.net core sdk
- python3----如何简单地理解Python中的if __name__ == '__main__'
- 如何在Eclipse配置Tomcat
- js中获取当前项目名等
- node2vec 包安装
- SSTI 模板注入url_for和get_flashed_messages之[WesternCTF2018]shrine
- 流氓软件自动安装恶意插件导致浏览器闪退问题
- scratch编程神笔马良
- 汉字转拼音,文字转语音tts (语音技术、语音识别),Asr/tts,变声
- 计算机5大的控件的功能,7款顶级功能插件,每一款都堪称办公宝典!
- 聚力远谋,创赢未来 | 坤前全国巡展南京站圆满收官
热门文章
- 数据可视化(matplotlib绘图)
- VTK:多重渲染窗口用法实战
- VTK:突出坏细胞用法实战
- JavaScript实现完整的matrix矩阵类(附完整源码)
- OpenCASCADE: Code::Blocks构建OCCT
- wxWidgets 电源管理示例
- boost::test模块测试参数化测试
- boost::signals2模块实现显示插槽通过接口传递的示例程序
- 使用 [funcref boost::pfr::get] 按索引访问结构体字段的测试程序
- boost::is_readable_iterator用法的测试程序