添加一个新列,该列具有重复的序列号



我们如何在下面的查询结果中添加一列来分配。。。

Key_Week1 to the 1st record 
Key_Week2 to the 2nd record 
Key_Week3 to the 3rd record 

Key_Week1 to the 4th record 
Key_Week2 to the 5th record 
Key_Week3 to the 6th record

Key_Week1 to the 7th record 
Key_Week2 to the 8th record 
Key_Week3 to the 9th record
And on and on and on...following the above pattern repeatedly?
Alternatively, you can use 1, 2 and 3 instead of Key_Week1, 
Key_Week2 and Key_Week3 for the new columns values
select distinct trunc(GenerateTimeBy1Day,'day') as claim_eff_date, trunc(GenerateTimeBy1Day,'day') + 20 AS bwe_to_complete_by from
(
select from_dt + (level - 1)/1 as GenerateTimeBy1Day 
from (select from_dt
,to_dt
,to_dt - from_dt + 1 as days_between    
from (select to_date('22-Dec-2019') as from_dt
, to_date('30-Dec-2040') as to_dt 
from dual))
connect by (level - 1) <= days_between  
)
order by claim_eff_date

当前结果:(只需运行上述查询。不需要样本数据(

Claim_Eff_DateBWE_To_Complete_By
2019年12月22日2020年1月11日
2019年12月29日2020年1月18日
20年1月5日20年1月25日
20年1月12日20年2月1日
20年1月19日20年2月8日
20年1月26日20年2月15日
20年2月2日2020年2月22日
20年2月9日29年2月20日
20年2月16日20年3月7日

一个选项只是计算row_number(),然后执行mod以获得重复。

with your_data as (
select distinct trunc(GenerateTimeBy1Day,'day') as claim_eff_date, 
trunc(GenerateTimeBy1Day,'day') + 20 AS bwe_to_complete_by 
from
(
select from_dt + (level - 1)/1 as GenerateTimeBy1Day 
from (select from_dt
,to_dt
,to_dt - from_dt + 1 as days_between    
from (select to_date('22-Dec-2019') as from_dt
, to_date('30-Dec-2040') as to_dt 
from dual))
connect by (level - 1) <= days_between  
)
order by claim_eff_date
)
select your_data.*,
mod( row_number() over (order by claim_eff_date) - 1, 3 ) + 1 key_week_group
from your_data

相关内容

  • 没有找到相关文章

最新更新