【问题标题】:Redshift Copy and row_number functionRedshift Copy 和 row_number 函数
【发布时间】:2015-08-18 07:56:09
【问题描述】:

有没有办法制作 Redshift 副本,同时在目标表中生成 row_number()?

我基本上是在寻找下面的等价物,只是行组不是来自选择,而是来自 S3 上文件的复制命令

insert into aTable
      (id,x,y,z)
  select
      #{startIncrement}+row_number() over(order by x) as id,
      x,y,z,
  from anotherTable;

谢谢

【问题讨论】:

    标签: amazon-redshift


    【解决方案1】:

    我从您的问题中了解到,您需要在表中插入一个额外的列 id,而 csv 文件中没有该 id。如果我的理解是正确的,请按照以下方法,

    将数据从 csv 文件复制到临时表中,例如“aTableTemp”,该表的架构没有“id”列。然后将“aTableTemp”中的数据插入“aTable”,如下所示

    Insert into aTable
    Select #{startIncrement}+row_number() over(order by x) as id, * from aTableTemp
    

    希望能解决你的问题

    【讨论】:

    • 我就是这样做的,但效率不高。我正在寻找在第一次插入 COPY 命令期间执行此操作的内容。
    • 通过复制命令时不能插入额外的列
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多