0

我正在填充一个 20 列的表,我想将记录除以 6000 万并标记。因此 1-60,000,000 条记录的 col20 的值为“1”,61,000,000-120,000,000 条记录为“2”,以此类推。

我正在采取以下步骤:

  1. 填充 19 列,将 col20 保留为 null
  2. 创建临时表,存储所有记录
  3. 从表中删除所有
  4. insert into table
    select *, 1 + FLOOR( (ROW_NUMBER() OVER (order by col1) - 1)/60000000 ) as col20
    from temp
    

我对 Snowflake 的性能不是很熟悉,我只是觉得 delete all & re-insert 看起来很愚蠢而且效率不高。还有另一种方法可以实现这一目标吗?或者,就性能而言,雪花可能不是问题?

更新:我应该是这个意思 - 表没有主键/唯一键。

谢谢。

4

1 回答 1

0

使用上述相同的逻辑加载数据后,您可以简单地在 col20 上执行更新。有什么原因不能更新吗?

于 2021-09-23T14:37:21.197 回答