【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
within group语句和group by没有半毛钱关系,只是一些单值聚合函数的辅助关键字,下面以rank函数为例。
rank在oracle中分为聚合函数和分析函数两种,本篇不介绍分析函数,参考分析函数篇章。
聚合函数的rank语法为:rank(expr1,expr2) within group (order by expr3,expr4 [desc/asc] nulls [first/last])
表示计算以expr3,expr4为排序条件的结果集中,expr3=expr1 and expr4=expr2的记录排序号,返回为数字类型。排序为非紧凑排序,即前两条记录相同,那么排序号依次是1,1,3... 使用时无需一定要和group by搭配使用。
所谓触类旁通,只要知道within group在rank中的含义,那么和其他函数一起使用时,也就无师自通了。
可以使用within group关键字的函数有rank,dense_rank,PERCENT_RANK,PERCENTILE_CONT,PERCENTILE_DISC等
来源:oschina
链接:https://my.oschina.net/u/105376/blog/53024