聚合函数RANK和dense
aggregate RANK和dense_rank的主要作用是计算一组数值中的排序值。
在9i版本之前,只有分析函数,即从查询结果中计算每行的排序值,是基于order_by_clause中的value_exprs指定字段的。
其语法为:
rank()over([query _ partition _ clause]ORDER _ BY _ clause)
在9i版本中新增了聚合函数,即这些参数必须是常量或文字表达式,并且必须与ORDER BY子句中字段的个数、位置和类型完全相同。
它的语法是:
RANK (expr [,expr]...(ORDER BY
expr[desc | ASC][null { FIRST | LAST }]
[,Exp[desc | ASC][null { FIRST | LAST }]]...
]
例1:
有一个表格,内容如下
col 1 col 2 1
3 2
3 1
4 1
4 2
5 2
6 2
在报表中找出各个科目的最上面的信息更有用。
从表a中选择a.*,RANK()OVER(PARTITION BY col 2 ORDER BY col 1)“RANK”;
结果如下:
col 1 col 2 rank
111
313
414
321[/br]]4 2 2
5 2 3
5 2 3
例2:
表:A(主题,分数)
0条评论