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优化相关推荐

  1. 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 ...

  2. mysql min函数 结果全为null_MySQL ----- 聚集函数(AVG,SUM,COUNT,MIN,MAX) (十一)

    为了汇总数据而不把实际的检索出来,MySQL 提供了专门的函数,聚集函数 好处:可以将检索数据进行分析和报表生成 一.聚集函数(aggregate function): 运行在行组上,计算和返回单个值 ...

  3. MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...

    单表查询 select 建个表 1.查询表中所有学生的信息 2.查询表中所有学生的姓名和对应的英语成绩 3.过滤表中重复数据 4.在所有学生分数上添加10分特长分 下面方式并没有改变底层的数据记录,这 ...

  4. C/C++中使用函数memset对int型数组赋值(0,-1,max,min)

    memset函数在string.h文件中 以二维数组int g[N][N]为例: 数组初始化为0使用: memset(g,0,sizeof(g)); //初始化为0 数组初始化为-1: memset( ...

  5. Java8 Stream详解~聚合(max/min/count)

    max.min.count这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计.Java stream中也引入了这些概念和用法,极大地方便了我们对集合.数组的数据统计工作. 「案例一:获 ...

  6. Excel数值函数(6):Average,Max,Min,Count等数据统计函数

    01 Average ,求平均值 如下图所示,"C15:H15"单元格区域的平均值是12.5: 02 Max,求最大值 如下图所示,单元格区域"C16:F16" ...

  7. Scala集合的常用方法:sum/max/min/product

  8. python读取多行函数_Python3基础 __doc__ 单行与多行函数文档

    ? ????   Python : 3.7.0 ??????   OS : Ubuntu 18.04.1 LTS ??????  IDE : PyCharm 2018.2.4 ????? Conda ...

  9. oracle之4多行函数之分组函数

    常用的分组函数: Sum()求和: 聚合函数Count(*)求个数: Avg()求平均值: 注意:求平均数的方法不同得到的值可能不同. 原因:因为count(*)和count(comm)不相等,cou ...

最新文章

  1. ubb代码转化html代码
  2. lvm自动扩容到固定分区脚本
  3. android或java timer声明
  4. 洛谷P4315 月下“毛景树”
  5. 通过实例理解 Go 逃逸分析
  6. vue-js 特殊变量$event常识
  7. java中super_java中super的两种用法
  8. 苹果优化iPhone 12 Pro人脸识别,指纹识别还是别想了
  9. 【Elasticsearch】es 7.8.0 java 实现 BulkRequest 批量写入数据
  10. Asp.net Boilerplate 源码无法打开——找不到.net core sdk
  11. python3----如何简单地理解Python中的if __name__ == '__main__'
  12. 如何在Eclipse配置Tomcat
  13. js中获取当前项目名等
  14. node2vec 包安装
  15. SSTI 模板注入url_for和get_flashed_messages之[WesternCTF2018]shrine
  16. 流氓软件自动安装恶意插件导致浏览器闪退问题
  17. scratch编程神笔马良
  18. 汉字转拼音,文字转语音tts (语音技术、语音识别),Asr/tts,变声
  19. 计算机5大的控件的功能,7款顶级功能插件,每一款都堪称办公宝典!
  20. 聚力远谋,创赢未来 | 坤前全国巡展南京站圆满收官

热门文章

  1. 数据可视化(matplotlib绘图)
  2. VTK:多重渲染窗口用法实战
  3. VTK:突出坏细胞用法实战
  4. JavaScript实现完整的matrix矩阵类(附完整源码)
  5. OpenCASCADE: Code::Blocks构建OCCT
  6. wxWidgets 电源管理示例
  7. boost::test模块测试参数化测试
  8. boost::signals2模块实现显示插槽通过接口传递的示例程序
  9. 使用 [funcref boost::pfr::get] 按索引访问结构体字段的测试程序
  10. boost::is_readable_iterator用法的测试程序