首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redshift -更新Redshift DB中的特定列

Redshift -更新Redshift DB中的特定列
EN

Stack Overflow用户
提问于 2018-07-31 18:41:44
回答 1查看 1.2K关注 0票数 0

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

代码语言:javascript
复制
update sales set aging = (select 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 as aging from sales) ;

我得到无效的操作:无效的查询错误。有人能帮我找出我哪里错了吗?

我使用的是Amazon Redshift DB。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 18:49:59

您可能只需在更新的rhs端删除select

代码语言:javascript
复制
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表达式时生成此输出。我这么说的原因是,当您添加新记录,从而添加新的日期信息时,将不得不重新计算此计算列,这可能会带来很大的成本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51611468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档