别名: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 │
└─────────────────┘