首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在公用表表达式中使用Update

在公用表表达式中使用Update
EN

Stack Overflow用户
提问于 2016-11-28 01:25:17
回答 1查看 37关注 0票数 0

下面是CTE,它是更大查询的一部分。我尝试做一些简单的事情:用‘2016-10’更新或替换'2016-11‘或'2016-12’值的所有记录。

查询在更新时遇到错误。这里有没有其他方法可以让这个查询工作呢?

代码语言:javascript
复制
with q (month, cobrand, members) as
(select date_trunc('month',optimized_transaction_date), cobrand_id, 
count(distinct unique_mem_id)
from yi_fourmpanel.card_panel
Where (cobrand_id = '10001372' or cobrand_id = '10005640' or cobrand_id = '10005244') 
group by 1,2)

UPDATE q
SET members = dc
FROM (SELECT cobrand, members dc
      FROM q
      WHERE month = '2016-10') x
WHERE q.cobrand = x.cobrand
AND month IN ('2016-11', '2016-12')
EN

回答 1

Stack Overflow用户

发布于 2016-11-28 02:45:25

如果不想更改表数据,就不要使用UPDATE

要实现您想要做的事情,请编写类似以下内容的主查询:

代码语言:javascript
复制
WITH q(month, cobrand, members) AS (...)
SELECT
   month,
   cobrand,
   CASE WHEN month IN ('2016-11', '2016-12')
        THEN (SELECT members
              FROM q q1
              WHERE q1.month = '2016-10')
        ELSE members
   END
FROM q;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40831726

复制
相关文章

相似问题

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