阅读每户 - oracle - 分析函数

阅读每户 - oracle - 分析函数

ID:11885196

大小:33.00 KB

页数:8页

时间:2018-07-14

阅读每户 - oracle - 分析函数_第1页
阅读每户 - oracle - 分析函数_第2页
阅读每户 - oracle - 分析函数_第3页
阅读每户 - oracle - 分析函数_第4页
阅读每户 - oracle - 分析函数_第5页
资源描述:

《阅读每户 - oracle - 分析函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、阅读每户-ORACLE-分析函数

2、-统计方面

3、-公式

4、-Sum()Over([Partitionby][Orderby])

5、-Sum()Over([Partitionby][Orderby]RowsBetweenPrecedingAndFollowing)

6、-Sum()Over([Partitionby][Orderby]RowsBetweenPrecedingAndCurrentRow)

7、-Sum()Over([Partitionby][Orderby]RangeBetweenInterval'''Day'PrecedingAndInterval'''Day'Fol

8、lowing)

9、-例子

10、---创建订单表CREATETABLEorder_record(whoVARCHAR2(30)NOTNULL,wheVARCHAR2(100)NOTNULL,yerNUMBER(4),mohNUMBER(2),total_oradersNUMBER(7),total_salesNUMBER(11,2));SELECTall_sales.*,round(all_sales.sales/all_sales.region_sales,4)*100

11、

12、'%'FROM(SELECTo.whe,o.who,SUM(o.total_sales)sales,S

13、UM(SUM(o.total_sales))over(PARTITIONBYwhe)region_salesFROMorder_recordoGROUPBYwhe,who)all_salesWHEREall_sales.sales>all_sales.region_sales*0.5;

14、-排列方面

15、-公式

16、-Rank()Over([Partitionby][Orderby][NullsFirst/Last])

17、-相同数据排名一致,但下一记录会空出其中的排名

18、-数据排名A1B2B2C4

19、-Dense_rank()Over([Patitionby][Orderby][Nu

20、llsFirst/Last])

21、-相同数据排名一致,之后数据接上一次序继续

22、-数据排名A1B2B2C3

23、-Row_number()Over([Partitionby][Orderby][NullsFirst/Last])

24、-碰到相同数据时不做处理依照记录顺序依次递增

25、-数据排名A1B2B3C4

26、-Ntile()Over([Partitionby][Orderby])

27、-例子

28、-SELECTregion_id,customer_id,sum(customer_sales)total,--按照地区内进行销售总额的排序rank()over(PARTITIONBYregion

29、_idORDERBYSUM(customer_sales)desc)rank,dense_rank()over(PARTITIONBYregion_idORDERBYSUM(customer_sales)desc)dense_rank,row_number()over(PARTITIONBYregion_idORDERBYSUM(customer_sales)desc)row_numberFROMuser_orderGROUPBYregion_id,customer_id;

30、-最大值/最小值查找方面

31、-公式

32、-Min()/Max()Keep(Dense_rankFir

33、st/Last[Partitionby][Orderby])

34、-Ratio_to_report(value)

35、-Ratio_to_report(value)=value/sum(value)

36、-函数允许我们计算每条记录在其对应记录集或其子集中所占的比例

37、-例子

38、---获取各地区订单排名前三的客户,其中空值放置于最后SELECT*FROM(SELECTregion_id,customer_id,SUM(customer_sales)cust_total,SUM(SUM(customer_sales))over(PARTITIONBYregion_id)reg_total

39、,--获取总订单信息--按照区域进行分区,按照订单额度进行排序,其中空值置于最后rank()over(PARTITIONBYregion_idORDERBYSUM(customer_sales)descNULLSLAST)rankFROMuser_orderGROUPBYregion_id,customer_id)WHERErank<=3;--查询订单最多和最少的信息SELECT--MIN用于确保返回唯一记录--KEEP用于告知Oracle保留符合KEEP条件的记录--dense_rank为固定写法,不可更改MIN(customer_id)KEEP(

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

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

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