Как создать циклическую последовательность в хранилище данных снежинок

Я ищу последовательность с циклом в хранилище данных Snowflake, как в Oracle. Я думаю, что хранилище данных Snowflake не имеет этого встроенного. Есть идеи как реализовать?

1 ответ

Решение

Хотя 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 |
---+---+
Другие вопросы по тегам