Oracle数据库函数怎么用
导读:本文共3410.5字符,通常情况下阅读需要11分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1、什么是窗口函数?窗口函数也属于分析函数。Oracle从8.1.6开始提供窗口函数,窗口函数用于计算基于组的某种聚合值,窗口函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。与聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行基本语法:‹分析函数›over(partitionby‹用于分组的列名›orderb... ...
目录
(为您整理了一些要点),点击可以直达。窗口函数也属于分析函数。Oracle从8.1.6开始提供窗口函数,窗口函数用于计算基于组的某种聚合值,
窗口函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。
与聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行
从窗口函数组成上看,它是group by 和 order by的功能组合,group by分组汇总后改变了表的行数,一行只有一个类别,而partiition by则不会减少原表中的行数。
恰如窗口函数的组成,它同时具有分组和排序的功能,且不减少原表的行数。
OVER 关键字表示把函数当成窗口函数而不是聚合函数。SQL 标准允许将所有聚合函数用做窗口函数,使用 OVER 关键字来区分这两种用法。
OVER 关键字后的括号中经常添加选项用以改变进行聚合运算的窗口范围。如果 OVER 关键字后的括号中的选项为空,则窗口函数会对结果集中的所有行进行聚合运算。
为什么叫开窗呢?
因为在over()括号中的,partition() 函数可以将查询到的数据进行单独开一个窗口处理。譬如,查询每个班级的学生的排名情况,查询每个国家的历年人口等,诸如此类,都是在查询到的每一个班级、每一个国家中都开一个窗口,单独去执行命令。
rows和range分别表示选择后几行、选择数据范围
理解 rows between 含义,也叫做window子句:
preceding:往前following:往后current row:当前行unbounded:无边界,unbounded precending 表示从最前面的起点开始, unbounded following:表示到最后面的终点注:不加 partition by 的话则把整个数据集当作一个分区,不加 order by的话会对某些函数统计结果产生影响,如sum()
1.聚合函数
2.序列函数
row_number()
查询结果:
rank()
查询结果:
dense_rank()
查询结果:
3.其他类
partition by 子句:
order by 子句:
PARTITION BY子句和ORDER BY 可以共同使用,从而可以实现更加复杂的功能
Oracle数据库函数怎么用的详细内容,希望对您有所帮助,信息来源于网络。