分组函数 oracle 分析函数十分强大,我们只要掌握这些方法,更直接的说法就是知道这些分析函数的作用就能完成很多工作
下边贴出这些函数,及简单应用
其中我想对lag()和lead()函数坐下说明:lag()本身是延后的意思也就是延后出现某列的数,而lead()有引领、领先的意思也就是提前几行显示某列数据 RANK() dense_rank() 【语法】RANK ( ) OVER ( [query_partition_clause] order_by_clause ) dense_RANK ( ) OVER ( [query_partition_clause] order_by_clause ) 【功能】聚合函数RANK 和 dense_rank 主要的功能是计算一组数值中的排序值
【参数】dense_rank 与 rank()用法相当, 【区别】dence_rank 在并列关系是,相关等级不会跳过
rank 则跳过 rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内) dense_rank()l 是连续排序,有两个第二名时仍然跟着第三名
【说明】Oracle 分析函数 【示例】 聚合函数RANK 和 dense_rank 主要的功能是计算一组数值中的排序值
在 9i 版本之前,只有分析功能(analytic ),即从一个查询结果中计算每一行的排序值,是基于 order_by_clause 子句中的value_exprs 指定字段的
其语法为: RANK ( ) OVER ( [query_partition_clause] order_by_clause ) 在 9i 版本新增加了合计功能(aggregate),即对给定的参数值在设定的排序查询中计算出其排序值
这些参数必须是常数或常值表达式,且必须和ORDER BY 子句中的字段个数、