Oracle分组函数实例
分组函数也叫聚合函数。如果在查询只想要查分组函数,那么跟平时的查询语句并无不同:
SQL> SELECT sum(t.PRIZENUM),avg(t.PRIZENUM) FROM T_WLF_AWARDS_RECORD t WHERE t.PRIZETYPE=3 AND t.ISSEND IN (0,1,2,3,10) AND t.ACTIVITYID=4001; SUM(T.PRIZENUM) AVG(T.PRIZENUM)
--------------- ---------------
40948 4549.7777777777
但往往不会这么简单,我们会一次查询多个列,包括普通的、没有调用分组函数的列,那么我们要注意以下几点:
1、所有未包含在组函数中的列都应该包含在 GROUP BY 子句中;
2、包含在 GROUP BY 子句中的列不必包含在SELECT 列表中;
3、where条件语句放在GROUP BY子句前面;
SQL> SELECT t2.INVITERMSISDN,t2.INVITEEMSISDN,sum(t2.PRIZENUM),t2.ACTIVETIME
2 FROM T_WLF_AWARDS_RECORD t2
3 WHERE t2.PRIZETYPE=3 AND t2.ISSEND IN (0,1,2,3,10)
4 AND t2.ACTIVITYID=4001
5 AND t2.ACTIVETIME <=to_date('2018-10-31 00:00:00','yyyy-mm-dd,hh24:mi:ss')
6 AND to_date('2018-9-01 00:00:00','yyyy-mm-dd,hh24:mi:ss') <=t2.ACTIVETIME
7 and t2.REWARDTYPE = 0
8 AND t2.INVITERMSISDN=''
9 group by t2.INVITERMSISDN,t2.INVITEEMSISDN,t2.ACTIVETIME,t2.activityid; INVITERMSISDN INVITEEMSISDN SUM(T2.PRIZENUM) ACTIVETIME
------------- ------------- ---------------- -----------
17682318557 40000613773 10086 2018/10/2 1
4、分组函数可以用在having子句和order by子句中;
SQL> SELECT t2.INVITERMSISDN,avg(t2.PRIZENUM),t2.activityid
2 FROM T_WLF_AWARDS_RECORD t2
3 WHERE t2.PRIZETYPE=3 AND t2.ISSEND IN (0,1,2,3,10)
4 AND t2.ACTIVETIME <=to_date('2018-10-31 00:00:00','yyyy-mm-dd,hh24:mi:ss')
5 AND to_date('2018-9-01 00:00:00','yyyy-mm-dd,hh24:mi:ss') <=t2.ACTIVETIME
6 and t2.REWARDTYPE = 0
7 group by t2.INVITERMSISDN,t2.activityid
8 having avg(t2.PRIZENUM) > 200
9 order by avg(t2.PRIZENUM); INVITERMSISDN AVG(T2.PRIZENUM) ACTIVITYID
------------- ---------------- -----------
40000748105 300 6062
40000753029 300 6062
40000753874 300 6062
40000753990 300 6062
40000753949 300 6062
40000756034 300 6062
17682318557 10086 4001 7 rows selected
注意where先筛选出数据,再进行分组函数运算,最后再通过having对结果过滤。
Oracle分组函数实例的更多相关文章
- 【转】【CUBE】Oracle分组函数之CUBE魅力
http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查 ...
- Oracle分组函数之CUBE魅力
Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查询统计功能请参考文章<Oracle分组函数之ROLLUP魅力>(http://www ...
- Oracle分组函数之ROLLUP用法
rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as s ...
- Oracle分组函数以及数据分组
简单总结一下对于数据的分组和分组函数. 本文所举实例,数据来源oracle用户scott下的emp,dept ,salgrade 3表:数据如下: 一.分组函数 1.sum()求和函数.max()求最 ...
- oracle分组查询实例ORA-00979和ORA-00937错误分析
select J.ZWJGH,J.CZZXBH,J.JZZT,J.CWNY,J.JZPZH sum(J.FSE)<!-- 聚合函数字段没在分组条件中--> from JZPZXX J &l ...
- oracle 分组函数执行分析
先上例了: select job as "JOB1", avg(sal) as "avg sal" from scott.emp group by " ...
- [转]【ROLLUP】Oracle分组函数之ROLLUP魅力
原创:http://blog.itpub.net/519536/viewspace-610995 本文通过演示给出Oracle ROLLUP分组函数的用法,体验一下Oracle在统计查询领域中的函数魅 ...
- Oracle 分组函数
分组函数的介绍 分组函数作用于一组数据,并对一组数据返回一个值. (引用网上的一张图) 分组函数的使用规则 SELECT [column,] group_function(column) FROM t ...
- oracle 分组函数、视图
组函数 分组函数作用于一组数据,对每一组返回一个值 组函数类型: 1.计数 count(列名 或 表达式) 对满足的行数进行统计 2.求和 sum(列名 或 表达式 ...
随机推荐
- Linux内建命令和外部命令
Linux命令有内部命令(内建命令)和外部命令之分,内部命令和外部命令功能基本相同,但也有些细微差别. [内部命令 vs. 外部命令] (1)内部命令实际上是shell程序的一部分,其中包含的是一些比 ...
- linux下鼠标穿透和取消穿透--linux小白,大神无视
最近在用qt写一个跨平台的软件,因为设置了无边框,并且我自己给程序窗口加了阴影,阴影范围又比较大 所以必须给阴影区域加上鼠标穿透才能有更好的体验. 上网查了一下,在windows下使用SetWindo ...
- mysqldb 安装
MySQLdb是python的一个标准的连接和操纵mysql的模块. ubuntu下安装: sudo apt-get install python-mysqldb sudo apt-get insta ...
- C++复习13.虚析构函数知识
C++ 虚析构函数 20131010 在C++中的虚函数作用是实现基于继承机制的多态,但是我们好像忽略了一种情况,就是虚析构函数.在C++继承机制中,虽然构造函数是不可以使用虚函数声明,但是析构函数是 ...
- mac下初始化eclipse的安卓开发ndk开发环境
最近电脑由windows换成mac了,很多环境都要重新搭建,顺便纪录下,方便以后查阅. 1.先到eclipse官网下载最新版eclipse,我下载的是neon版,下载后直接解压到即可使用(前提是你安装 ...
- MoreEffectiveC++Item35(操作符)(条款5-8)
条款5 对定制的"类型转换函数"保持警惕 条款6 区别increment/decrement操作符的前值和后置形式 条款7 千万不要重载&&,||,和,操作符 条款 ...
- jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?
jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行? 因为在解析时最新解析的就是JA ...
- SSH项目搭建(一)
本章不讲项目,讲一下SSH的下载 一.Struts2 1.通过百度进入官网 2.点击Download>>>>Full Releases>>>>你想要的版 ...
- caffe官网的部分翻译及NG的教程
Caffe原来叫:Convolutional Architecture for Fast Feature Embedding 官网的个人翻译:http://blog.csdn.net/fengbing ...
- CSS琐碎[1]
(1)letter-spacing 设置字符间局,用长度指定(百分比兼容性不好) 没有间距 间距6px API:http://gucong3000.github.io/css-book/propert ...