我正在填充一个 20 列的表,我想将记录除以 6000 万并标记。因此 1-60,000,000 条记录的 col20 的值为“1”,61,000,000-120,000,000 条记录为“2”,以此类推。
我正在采取以下步骤:
- 填充 19 列,将 col20 保留为 null
- 创建临时表,存储所有记录
- 从表中删除所有
-
insert into table select *, 1 + FLOOR( (ROW_NUMBER() OVER (order by col1) - 1)/60000000 ) as col20 from temp
我对 Snowflake 的性能不是很熟悉,我只是觉得 delete all & re-insert 看起来很愚蠢而且效率不高。还有另一种方法可以实现这一目标吗?或者,就性能而言,雪花可能不是问题?
更新:我应该是这个意思 - 表没有主键/唯一键。
谢谢。