0

有人可以帮助这项任务吗?如果我在 Teradata 中有一张如下表:

案例ID 内容 重复
id1 第 1 行 2
id2 第 2 行 3

我想根据以下重复值构建一个新表。我应该怎么做?

案例ID 内容 重复 群号
id1 第 1 行 2 1
id1 第 1 行 2 2
id2 第 2 行 3 1
id2 第 2 行 3 2
id2 第 2 行 3 3

谢谢!

4

2 回答 2

3

Teradata 专有的 EXPAND ON 语法创建时间序列并可用于此任务:

SELECT t.*
   -- convert period back to int
  ,End(pd) - Current_Date AS groupid
FROM mytable AS t
-- works on date/time only -> convert int to period
EXPAND ON PERIOD(Current_Date, Current_Date + repeat) AS pd 
于 2021-06-10T07:31:00.983 回答
1

你可以使用递归 cte 来做到这一点:

with recursive cte as (
select * , 1 groupid from cases 
union all 
select caseid ,content, repeat, groupid + 1 groupid
from cte 
where groupid  < repeat
)

select  * from cte
order by caseid
酪蛋白 | 内容 | 重复 | 群号
-----: | :-------- | -----: | ------:
     1 | 第 1 行 | 2 | 1
     1 | 第 1 行 | 2 | 2
     2 | 第 2 行 | 3 | 1
     2 | 第 2 行 | 3 | 2
     2 | 第 2 行 | 3 | 3

db<>在这里摆弄

于 2021-06-10T00:41:59.787 回答