给定 netezza aginity sql 中的变量,按降序生成序列号
generate serial number in decreasing order given a variable in netezza aginity sql
是否有使用 netezza SQL 的任何 SQL 语法,给定列号,尝试按降序生成数字行,直至 0。
下面是我正在尝试做的一个例子
之前
ID
NUMBER
A
4
B
5
之后
ID
NUMBER
A
4
A
3
A
2
A
1
B
5
B
4
B
3
B
2
B
1
也请点击查看示例screenshot谢谢
您可以使用 _v_vector_idx
table 来达到这个目的
select
id, idx
from
test join _v_vector_idx
on idx <= number
order
by id asc, idx desc ;
这是实际的例子
select * from test
ID | NUMBER
-------+--------
A | 4
B | 5
(2 rows)
select id, idx from test join _v_vector_idx on
idx <= number order by id asc, idx desc ;
ID | IDX
-------+-----
A | 4
A | 3
A | 2
A | 1
A | 0
B | 5
B | 4
B | 3
B | 2
B | 1
B | 0
(11 rows)
insert into test values ('C', 3);
INSERT 0 1
select * from test;
ID | NUMBER
-------+--------
A | 4
B | 5
C | 3
(3 rows)
select id, idx from test join _v_vector_idx
on idx <= number order by id asc, idx desc ;
ID | IDX
-------+-----
A | 4
A | 3
A | 2
A | 1
A | 0
B | 5
B | 4
B | 3
B | 2
B | 1
B | 0
C | 3
C | 2
C | 1
C | 0
(15 rows)
是否有使用 netezza SQL 的任何 SQL 语法,给定列号,尝试按降序生成数字行,直至 0。
下面是我正在尝试做的一个例子
之前
ID | NUMBER |
---|---|
A | 4 |
B | 5 |
之后
ID | NUMBER |
---|---|
A | 4 |
A | 3 |
A | 2 |
A | 1 |
B | 5 |
B | 4 |
B | 3 |
B | 2 |
B | 1 |
也请点击查看示例screenshot谢谢
您可以使用 _v_vector_idx
table 来达到这个目的
select
id, idx
from
test join _v_vector_idx
on idx <= number
order
by id asc, idx desc ;
这是实际的例子
select * from test
ID | NUMBER
-------+--------
A | 4
B | 5
(2 rows)
select id, idx from test join _v_vector_idx on
idx <= number order by id asc, idx desc ;
ID | IDX
-------+-----
A | 4
A | 3
A | 2
A | 1
A | 0
B | 5
B | 4
B | 3
B | 2
B | 1
B | 0
(11 rows)
insert into test values ('C', 3);
INSERT 0 1
select * from test;
ID | NUMBER
-------+--------
A | 4
B | 5
C | 3
(3 rows)
select id, idx from test join _v_vector_idx
on idx <= number order by id asc, idx desc ;
ID | IDX
-------+-----
A | 4
A | 3
A | 2
A | 1
A | 0
B | 5
B | 4
B | 3
B | 2
B | 1
B | 0
C | 3
C | 2
C | 1
C | 0
(15 rows)