oraclegroupby用法实例详解

oraclegroupby用法实例详解

ID:34724852

大小:91.18 KB

页数:10页

时间:2019-03-10

oraclegroupby用法实例详解_第1页
oraclegroupby用法实例详解_第2页
oraclegroupby用法实例详解_第3页
oraclegroupby用法实例详解_第4页
oraclegroupby用法实例详解_第5页
资源描述:

《oraclegroupby用法实例详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Groupby的语法Select[filed1,fild2,]聚合函数(filed),[Grouping(filed),][Grouping_id(filed1,filed2,…)]FromtablenameWherecondition[Groupby{rollup

2、cube}(filed,filed2)][havingcondition][orderbyfiled1]一、基本用法:(1)我们通过几个例子来研究groupby的基本用法创建测试表SQL>createtablesales(2empidnumber,--雇员ID3depidnum

3、ber,--部门ID4areavarchar(20),--区域5salenumnumber);--销售额 表已创建。 SQL>insertintosalesvalues(1,1,'china',10);SQL>insertintosalesvalues(2,1,'china',10);SQL>insertintosalesvalues(3,1,'china',10);SQL>insertintosalesvalues(3,1,'china',10);SQL>insertintosalesvalues(3,1,'china',10);SQL>

4、insertintosalesvalues(1,1,'china',10);SQL>insertintosalesvalues(2,1,'china',10);SQL>insertintosalesvalues(4,2,'china',10);SQL>insertintosalesvalues(4,2,'china',10);SQL>insertintosalesvalues(5,3,'us',10);SQL>insertintosalesvalues(5,3,'us',10);需求1,按部门统计销售额(简单用法)SQL>selectdep

5、id,sum(salenum)fromsalesgroupbydepid;DEPIDSUM(SALENUM)----------------------1       702       203       20需求2,按部门统计销售额,并且只显示销售总额小于30的部门及销售额(使用having子句)SQL>selectdepid,sum(salenum)totalnumfromsalesgroupbydepidhavingsum(salenum)<30;DEPIDSUM(SALENUM)----------------------2   

6、    203       20注解:需求2需要使用having字名,而且在子句中不能使用别名,必须使用在select语句中书写的形式(2)Where和having的区别Wheret和having子句都用来筛选数据,但是where是针对原数据进行筛选,而having子句只是针对汇总后的结果进行筛选,所以在需求二的例子中,想要对销售总额进行过滤只能使用having子句(3)使用orderby排序SQL>selectdepid,sum(salenum)fromsalesgroupbydepid;DEPIDSUM(SALENUM)--------

7、--------------1      702      203      20注意观察需求1的例子,depid是已经按照在depid升序排列的,这是因为oracle在做聚合统计的时候会首先对字段进行排序,所以最终的结果是按照升序进行排列的,如果orderby后跟着多个字段,默认排序是先对第一个字段升序排序,然后再排第二个字段,以此类推,所以如果在应用中仅仅需要长序排序可以不用加orderby参数,毕竟这会影响性能二、扩展用法:扩展用法使用下面的表进行实验研究SQL>createtabletestgroup(2avarchar(5),3b

8、varchar(5),4cvarchar(5),5nnumber);建完测试表,然后插入两条测试数据SQL>insertintotestgroupvalues('a1','b1','c1',10);SQL>insertintotestgroupvalues('a1','b1','c1',20);我们使用基本的groupby可以得到以下结果SQL>selecta,b,c,sum(n)totalfromtestgroupgroupbya,b,c;A       B     C    TOTAL-------------------------a

9、1     b1    c1    30(1)使用rollup操作符Rollup意思有”卷起,汇总”的意思,他可以在使得在其括号中的字段,按从右到左的顺序分别group后显示,类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。