作者:瀚高PG实验室 (Highgo PG Lab)
generate_series允许我们生成一个数据的集合,而且可以随意的设置增长值。generate_series支持两种数据类型:integer类型和 timestamp类型。
级数生成函数
函数 |
描述 |
generate_series(start, stop) |
生成一系列值,范围从start到stop,step值为1 |
generate_series(start, stop,step) |
生成一系列值,范围从start到stop,并设定step值 |
generate_series(start, stop,step interval) |
生成一系列值,范围从start到stop,并设定step值 |
当step值为正,而且start的值比stop大时,会返回零行。相反,当step值为负,而且start 的值比stop小时,会返回零行。
输入值全部为NULL时也会返回零行。
注意!!!如果step值为0会报错。
下面我们举几个例子,来观察级数生成函数的执行结果:



然后我们考虑生成假数据的问题:
当我们把generate_series放到一个CTE中时,我们可以很容易的得到一组数字,然后用每个值进行一些运算。如果我们想生成一些假数字,就可以使用random(),它生成一个0到1之间的随机数。结果如图4所示:

PostgreSQL中有大量隐藏的宝库,generate_series只是其中便捷的内置特征之一。还有很多好的功能等待我们挖掘使用。