加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

常用Oracle分析函数大全

发布时间:2020-12-12 17:04:09 所属栏目:百科 来源:网络整理
导读:Oracle的分析函数功能非常强大,工作这些年来经常用到。这次将平时经常使用到的分析函数整理出来,以备日后查看。 我们拿案例来学习,这样理解起来更容易一些。 1、建表 2、插入实验数据 3、查看实验数据 查询结果如下 4、sum函数按照月份,统计每个地区的总

Oracle的分析函数功能非常强大,工作这些年来经常用到。这次将平时经常使用到的分析函数整理出来,以备日后查看。

我们拿案例来学习,这样理解起来更容易一些。

1、建表

2、插入实验数据

3、查看实验数据

查询结果如下


4、sum函数按照月份,统计每个地区的总收入

查询结果如下


5、rollup函数按照月份,地区统计收入


查询结果如下


6、cube函数按照月份,地区进行收入汇总


rollup和cube区别:

(A、B)
(A)

(A、B)
(A、C)
(A)
(B、C)
(B)
(C)

该记录是由哪个字段得出来的

查询结果如下


8、rank() over开窗函数

按照月份、地区,求打工收入排序

查询结果如下


9、dense_rank() over开窗函数按照月份、地区,求打工收入排序2

查询结果如下


10、row_number() over开窗函数按照月份、地区,求打工收入排序3

查询结果如下


11、sum累计求和根据月份求出各个打工者收入总和,按照收入由少到多排序

查询结果如下


12、max,min,avg和sum函数综合运用按照月份和地区求打工收入最高值,最低值,平均值和总额

查询结果如下


13、lag和lead函数求出每个打工者上个月和下个月有没有赚钱(personincome大于零即为赚钱)

查询结果如下


说明:Lag和Lead函数可以在一次查询中取出某个字段的前N行和后N行的数据(可以是其他字段的数据,比如根据字段甲查询上一行或下两行的字段乙)

语法如下:

lag(value_expression [,offset] [,default]) over ([query_partition_clase] order_by_clause);

lead(value_expression [,default]) over ([query_partition_clase] order_by_clause);

其中:

value_expression:可以是一个字段或一个内建函数。

offset是正整数,默认为1,指往前或往后几点记录.因组内第一个条记录没有之前的行,最后一行没有之后的行,default就是用于处理这样的信息,默认为空。

再讲讲所谓的开窗函数,依本人遇见,开窗函数就是 over([query_partition_clase] order_by_clause)。比如说,我采用sum求和,rank排序等等,但是我根据什么来呢?over提供一个窗口,可以根据什么什么分组,就用partition by,然后在组内根据什么什么进行内部排序,就用 order by。

以上所述是小编给大家介绍的常用Oracle分析函数大全,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程之家网站的支持!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读