AWS redshift中的序列号生成功能

use*_*189 4 amazon-web-services amazon-redshift

redshift中有序列号生成功能吗?还是一个将值组合并给出数字哈希键的函数?

Joe*_*ris 7

目前尚无序列的概念(如在Oracle中所见)。

您有几种选择:

  • 编号表
  • RANK()或ROW_NUMBER()窗口在整个集合中起作用。请注意,如果您有多节点群集,这可能会对性能产生负面影响。
  • 定义为IDENTITY(种子,步骤)的列。注意,IDENTITY序列可能是“稀疏的”(例如,序列中有间隔)。

  • 是的,IDENTITY值不会冲突,但不能保证它们是连续的,例如,对于8节点群集,您将获得一系列值,例如1,9,17,25。 (2认同)

小智 5

这是生成一百万个数字的另一种方法

with seq_0_9 as (
select 0 as num
union all select 1 as num
union all select 2 as num
union all select 3 as num
union all select 4 as num
union all select 5 as num
union all select 6 as num
union all select 7 as num
union all select 8 as num
union all select 9 as num
), seq_0_999 as (
select a.num + b.num * 10 + c.num * 100 as num
from seq_0_9 a, seq_0_9 b, seq_0_9 c
)
select a.num + b.num * 1000 as num
from seq_0_999 a, seq_0_999 b
order by num
Run Code Online (Sandbox Code Playgroud)