Redshift-更新Redshift DB中的特定列

时间:2018-07-31 10:41:44

标签: sql-update amazon-redshift increment

我有一个存储销售数据的销售表。该表每天更新一次(增量更新)。我正在尝试更新此表中的列之一以计算自sale_date以来的账龄。

s

我得到无效的操作:无效的查询错误。谁能帮我找到我在哪里出问题了。

我正在使用Amazon Redshift数据库。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可能只需要在更新的RHS一侧删除select

UPDATE sales
SET aging = CASE WHEN sale_date > current_date - 28 AND sale_date < current_date - 14
                 THEN '2 - 4 Weeks Ago'
                 WHEN terminated_at > current_date - 14 AND terminated_at < current_date
                 THEN '0 - 2 Weeks Ago'
                 WHEN terminated_at < current_date - 28
                 THEN '4+ Weeks Ago'
                 ELSE 'Unknown' END;

但是,我觉得也许您不应该将此信息存储在SQL表中。相反,在需要时使用相同的CASE表达式进行选择时,可以生成此输出。我之所以这样说,是因为当您添加新记录并添加新日期信息时,必须再次计算此计算列,这可能会很昂贵。