【发布时间】:2017-10-19 17:39:42
【问题描述】:
我在 oracle 分析函数中遇到问题
我希望oracle中的排名按顺序显示,但需要循环方式。但是这个排名应该发生在一个组内。 假设我有 10 个组 在 10 组中,每组必须排名到 9。如果大于 9,则排名值必须从 1 重新开始,然后结束,直到多少为止
emp id date1 date 2 Rank
123 13/6/2012 13/8/2021 1
123 14/2/2012 12/8/2014 2
.
.
123 9/10/2013 12/12/2015 9
123 16/10/2013 15/10/2013 1
123 16/3/2014 15/9/2015 2
在上面的示例中,对于 empid 123 的行组,我以两个子组的方式划分了排名。依次从 1 到 9 是一组,对于其余行,排名再次从 1 开始。如何在 oracle rank 函数中实现这一点。
【问题讨论】:
-
mod(rank(...)-1, 9)+1 -
@peter 你能发送一个关于这个的示例查询吗?我已经使用 row_number 来获得排名
标签: sql oracle oracle11g oracle10g