Alias : generateSeries
Syntaxe
Renvoie une table comportant une seule colonne, 'generate_series' (UInt64), qui contient les entiers de start à stop, bornes incluses :
generate_series(START, STOP)Renvoie une table comportant une unique colonne 'generate_series' (UInt64) contenant les entiers de start à stop inclus, avec un espacement entre les valeurs défini par STEP :
generate_series(START, STOP, STEP)STEP peut être négatif ; dans ce cas, la série est générée par ordre décroissant, de START à STOP. Si STEP est négatif et que START < STOP, le résultat est vide.
Exemples
Les requêtes suivantes renvoient des tables au contenu identique mais portant des noms de colonnes différents :
SELECT * FROM numbers(10, 5);┌─number─┐
│ 10 │
│ 11 │
│ 12 │
│ 13 │
│ 14 │
└────────┘SELECT * FROM generate_series(10, 14);┌─generate_series─┐
│ 10 │
│ 11 │
│ 12 │
│ 13 │
│ 14 │
└─────────────────┘Et les requêtes suivantes renvoient des tables au contenu identique, mais avec des noms de colonnes différents (la deuxième option est toutefois plus efficace) :
SELECT * FROM numbers(10, 11) WHERE number % 3 == (10 % 3);┌─number─┐
│ 10 │
│ 13 │
│ 16 │
│ 19 │
└────────┘SELECT * FROM generate_series(10, 20, 3);┌─generate_series─┐
│ 10 │
│ 13 │
│ 16 │
│ 19 │
└─────────────────┘Générez une série décroissante :
SELECT * FROM generate_series(9, 0, -1);┌─generate_series─┐
│ 9 │
│ 8 │
│ 7 │
│ 6 │
│ 5 │
│ 4 │
│ 3 │
│ 2 │
│ 1 │
│ 0 │
└─────────────────┘