别名:generateSeries
返回一个仅包含单列 'generate_series' (类型为 UInt64) 的表,该列的取值为从 start 到 stop (含端点) 的整数:
generate_series(START, STOP)
返回一个仅包含名为 'generate_series' 单列 (UInt64) 的表,该列包含从 start 到 stop (含端点) 的整数,数值之间的步长由 STEP 指定:
generate_series(START, STOP, STEP)
STEP 可以为负数,此时序列将按降序从 START 生成至 STOP。如果 STEP 为负数且 START < STOP,则结果为空。
以下查询返回的表内容相同,但列名不同:
SELECT * FROM numbers(10, 5);
┌─number─┐
│ 10 │
│ 11 │
│ 12 │
│ 13 │
│ 14 │
└────────┘
SELECT * FROM generate_series(10, 14);
┌─generate_series─┐
│ 10 │
│ 11 │
│ 12 │
│ 13 │
│ 14 │
└─────────────────┘
以下查询将返回内容相同但列名不同的表 (不过第二种方式效率更高) :
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 │
└─────────────────┘
生成降序序列:
SELECT * FROM generate_series(9, 0, -1);
┌─generate_series─┐
│ 9 │
│ 8 │
│ 7 │
│ 6 │
│ 5 │
│ 4 │
│ 3 │
│ 2 │
│ 1 │
│ 0 │
└─────────────────┘