如何在雪花数据仓库中创建循环序列
How to create a cyclic sequence in snowflake data warehouse
我正在像在 Oracle 中一样在 Snowflake 数据仓库中寻找带有循环的序列。我猜 Snowflake 数据仓库没有这个内置的。知道如何实施吗?
虽然 Snowflake 目前不支持它(请考虑在 Snowflake 社区论坛中提交功能请求),但您可以(大部分)使用 UDF 模拟它,例如:
create or replace sequence seq;
create or replace function cyclic_seq() returns int as 'mod(seq.nextval, 3)';
create or replace table x(s string, i int default cyclic_seq());
insert into x(s) values('a');
insert into x(s) values('b');
insert into x(s) values('c');
insert into x(s) values('d');
insert into x(s) values('e');
insert into x(s) values('f');
select * from x;
---+---+
S | I |
---+---+
a | 1 |
b | 2 |
c | 0 |
d | 1 |
e | 2 |
f | 0 |
---+---+
我正在像在 Oracle 中一样在 Snowflake 数据仓库中寻找带有循环的序列。我猜 Snowflake 数据仓库没有这个内置的。知道如何实施吗?
虽然 Snowflake 目前不支持它(请考虑在 Snowflake 社区论坛中提交功能请求),但您可以(大部分)使用 UDF 模拟它,例如:
create or replace sequence seq;
create or replace function cyclic_seq() returns int as 'mod(seq.nextval, 3)';
create or replace table x(s string, i int default cyclic_seq());
insert into x(s) values('a');
insert into x(s) values('b');
insert into x(s) values('c');
insert into x(s) values('d');
insert into x(s) values('e');
insert into x(s) values('f');
select * from x;
---+---+
S | I |
---+---+
a | 1 |
b | 2 |
c | 0 |
d | 1 |
e | 2 |
f | 0 |
---+---+