1组函数 avg(),sum(),max(),min(),count()案例:

selectavg(sal),sum(sal),max(sal),min(sal),count(sal)

from emp

/

截图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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.分组数据


求各个部门的平均工资

思路:须要把各个部门的数据划分….10部门
20部门 30部门….分组……

select deptno,avg(sal)

from emp

group by deptno;

执行结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">


组函数设计的本意

(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;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

方法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. 三、函数 (SUM、MIN、MAX、COUNT、AVG)

    第八章 使用数据处理函数 8.1 函数 SQL支持利用函数来处理数据.函数一般是在数据上执行的,给数据的转换和处理提供了方便. 每一个DBMS都有特定的函数.只有少数几个函数被所有主要的DBMS等同的 ...

  2. 聚合函数:sum,avg,max,min,count

    group by  分组的使用方法 数学函数:ABS.ceiling.floor.power.round.sqrt.square 练习:

  3. MDX Step by Step 读书笔记(七) - Performing Aggregation 聚合函数之 Max, Min, Count , DistinctCount 以及其它 TopCount, Generate

    MDX 中最大值和最小值 MDX 中最大值和最小值函数的语法和之前看到的 Sum 以及 Aggregate 等聚合函数基本上是一样的: Max( {Set} [, Expression]) Min( ...

  4. 线段树-sum/max/min/区间更新

    写一个板子. #include <cstdio> #include <algorithm> using namespace std; +; #define ROOT 1, 1, ...

  5. Oracle Day3 多行函数、多表查询

    1.多行函数 Sum avg max min count 组函数具有滤空的作用(添加nvl屏蔽该功能) 分组group by 多行分组 分组过滤 where 和分组过滤的区别(having) 分组的增 ...

  6. SQL单行函数和多行函数

    单行函数和多行函数示意图: 单行函数分为五种类型:字符函数.数值函数.日期函数.转换函数.通用函数 单行函数: --大小写控制函数 select lower('Hello World') 转小写, u ...

  7. 74.Python中ORM聚合函数详解:Max,Min

    Max和Min:获取指定对象的最大值和最小值. 1. 比如:想要获取Author表中的最大的年龄和最小的年龄.示例代码如下: from django.http import HttpResponse ...

  8. Oracle_多行函数

      Oracle_多行函数   多行函数min(),max(),count(),sum(),avg() --1.1统计公司的最高工资,最低工资和总人数 --对于null值直接略过,不做运算 --max ...

  9. Oracle-DQL 5- 分组函数(多行函数)

    分组函数(多行函数):--针对表中的多行数据进行运算,返回一个结果 1.多行函数 --sum() 求和SELECT SUM(sal) FROM emp; --avg() 求平均值SELECT AVG( ...

随机推荐

  1. MySQL installer

  2. java.util.Queue用法

    队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 在队列这 ...

  3. 打印org.eclipse.xsd.XSDSchema对象

    由于网上关于Eclipse XSD的中文资料比較少,可是有的时候.我们须要使用Eclipse XSD的API去构造或者改动一个XSD文件. 那么当我们创建了org.eclipse.xsd.XSDSch ...

  4. 在屏幕上建立ALV

    在屏幕上创建两个文本元素空件.一个推出按钮控件.一个定制控制按钮 代码所示: *&------------------------------------------------------- ...

  5. 14.5.7 Storing InnoDB Undo Logs in Separate Tablespaces 存储InnoDB Undo logs 到单独的表空间

    14.5.7 Storing InnoDB Undo Logs in Separate Tablespaces 存储InnoDB Undo logs 到单独的表空间 在MySQL 5.6.3,你可以存 ...

  6. Linux统计文件/目录数量ls -l | grep "^-" | wc -l匹配开头和结尾

    Linux统计文件数量 ls -l | grep "^-" | wc -l “^-”  一般文件 “^d” 目录文件 shell/vim中^表示开头 cat repatterns ...

  7. 用Python制作游戏外挂(上)

    源地址:http://eyehere.net/2012/python-game-bot-autopy-1/ 悲剧成我这样的人,我知道肯定不止我一个,所以我一点都不悲伤:-( 所以我打开了4399小游戏 ...

  8. 获取Exe文件版本信息的函数(使用GetFileVersionInfo得到TFileVersionInfo结构体,包含12项内容)

    Type   TFileVersionInfo   =   Record         FixedInfo:TVSFixedFileInfo;         {版本信息}         Comp ...

  9. 由一道淘宝面试题到False sharing问题

    今天在看淘宝之前的一道面试题目,内容是 在高性能服务器的代码中经常会看到类似这样的代码: typedef union { erts_smp_rwmtx_t rwmtx; byte cache_line ...

  10. hdu2647解题报告

    题意:有个工厂的老板给工人发奖金,每人基础都是888,工人们有自己的想法,如:a 工人想要比 b 工人的奖金高,老板想要使花的钱最少 那么就可以 给b 888,给a 889 ,但是如果在此基础上,b也 ...