Preciso gerar números inteiros definidos pelo usuário como um conjunto de números não ordenados necessário para um determinado intervalo, por exemplo, (10) um certo número de vezes, por exemplo, 3 em uma coluna de uma tabela.
A quantidade e repetição de dígitos podem ser diferentes e podem ser definidas pelo usuário a seu critério.
Por exemplo, o resultado desejado de cima para baixo deve ser assim:
0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2. 1, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2. 1, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2. 1, 0.
Talvez, usando a função
SELECT n
FROM generate_series(ARRAY[0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2. 1, 0], 3) n
ou algo semelhante?
Você quase conseguiu. Você precisa usar
unnest
para dividir a matriz e, em seguida, juntá-la com 3 linhas degenerate_series
.banco de dados<> violino