Teradata SQL-将重复值列添加到现有表中

Teradata SQL-将重复值列添加到现有表中,sql,teradata,Sql,Teradata,我有一个包含5000条记录的数据集。我想在此数据集中添加3列:第一列的值为1到5,第二列的值为1到4,第三列的值为1到3,如下所示- record_id ser_num5 ser_num4 ser_num3 1 1 1 1 2 2 2 2 3 3 3 3 4 4

我有一个包含5000条记录的数据集。我想在此数据集中添加3列:第一列的值为1到5,第二列的值为1到4,第三列的值为1到3,如下所示-

record_id   ser_num5    ser_num4    ser_num3
1           1           1           1
2           2           2           2
3           3           3           3
4           4           4           1
5           5           1           2
6           1           2           3
7           2           3           1
8           3           4           2
9           4           1           3
10          5           2           1
11          1           3           2
12          2           4           3
13          3           1           1
14          4           2           2
15          5           3           3
16          1           4           1
17          2           1           2
18          3           2           3
19          4           3           1
20          5           4           2
….          
5000            
如何在Teradata SQL中实现这一点?我尝试了下面的代码,但没有成功-

CREATE SEQUENCE Test.SerNum5
    AS Int 
    START WITH 1
    INCREMENT BY 1
    MINVALUE 1
    MAXVALUE 5
    CYCLE
;

SELECT NEXT VALUE FOR Test.SerNum5;

另外,如果我无法使创建序列正常工作,我是否可以以某种方式将此片段合并到现有的“selectcolumns”语句中。谢谢你的帮助

最简单的方法是对
id
进行算术运算:

select id,
       ((id - 1) mod 5) + 1 as sernum_5,
       ((id - 1) mod 4) + 1 as sernum_4,
       ((id - 1) mod 3) + 1 as sernum_3
如果
id
不是真正连续的,则可以使用
行编号()

select id,
       ((row_number() over (order by id) - 1) mod 5) + 1 as sernum_5,
       ((row_number() over (order by id) - 1) mod 4) + 1 as sernum_4,
       ((row_number() over (order by id) - 1) mod 3) + 1 as sernum_3