首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle rank函数问题

Oracle rank函数问题
EN

Stack Overflow用户
提问于 2013-09-03 03:06:36
回答 1查看 226关注 0票数 0

我在oracle分析函数中遇到了一个问题

我希望oracle中的排名是顺序显示的,但需要一个循环的fashion.But,这个排名应该在一个组内发生。假设我有10个组,每组必须排到9。如果大于9,则排名值必须从1重新开始,然后结束,直到有多少

代码语言:javascript
复制
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

在上面的例子中,对于EmpID123的行组,我已经将fashion.Sequentially分成两个子组,从1到9是一个组,而对于其余的行,排名再次从1开始。如何在oracle rank函数中实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2017-10-19 17:39:42

根据埃戈尔·斯克里普图诺夫上面的建议:

代码语言:javascript
复制
select
  empid, date1, date2
, row_number() over(order by date1, date2)             as "rank"
, mod(row_number() over(order by date1, date2)-1, 9)+1 as "cycle_9"
from yourtable

示例结果

代码语言:javascript
复制
| empid |                date1 |                date2 | rn | ranked |
|-------|----------------------|----------------------|----|--------|
| 72232 | 2016-10-26T00:00:00Z | 2017-03-07T00:00:00Z |  1 |      1 |
| 04365 | 2016-11-03T00:00:00Z | 2017-07-29T00:00:00Z |  2 |      2 |
| 79203 | 2016-12-15T00:00:00Z | 2017-05-16T00:00:00Z |  3 |      3 |
| 68638 | 2016-12-18T00:00:00Z | 2017-02-08T00:00:00Z |  4 |      4 |
| 75784 | 2016-12-24T00:00:00Z | 2017-11-18T00:00:00Z |  5 |      5 |
| 72836 | 2016-12-24T00:00:00Z | 2018-09-10T00:00:00Z |  6 |      6 |
| 03679 | 2017-01-24T00:00:00Z | 2017-10-14T00:00:00Z |  7 |      7 |
| 43527 | 2017-02-12T00:00:00Z | 2017-01-15T00:00:00Z |  8 |      8 |
| 03138 | 2017-02-26T00:00:00Z | 2017-01-30T00:00:00Z |  9 |      9 |
| 89758 | 2017-03-29T00:00:00Z | 2018-04-12T00:00:00Z | 10 |      1 |
| 86377 | 2017-04-14T00:00:00Z | 2018-10-07T00:00:00Z | 11 |      2 |
| 49169 | 2017-04-28T00:00:00Z | 2017-04-21T00:00:00Z | 12 |      3 |
| 45523 | 2017-05-03T00:00:00Z | 2017-05-07T00:00:00Z | 13 |      4 |

SQL Fiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18579415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档