首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从查询中更新红移表

从查询中更新红移表
EN

Stack Overflow用户
提问于 2015-08-27 13:46:18
回答 1查看 10.5K关注 0票数 5

我试图从查询中更新Redshift中的一个表:

代码语言:javascript
复制
update mr_usage_au au
inner join(select mr.UserId,
                  date(mr.ActionDate) as ActionDate,
                  count(case when mr.EventId in (32) then mr.UserId end) as Moods,
                  count(case when mr.EventId in (33) then mr.UserId end) as Activities,
                  sum(case when mr.EventId in (10) then mr.Duration end) as Duration
           from   mr_session_log mr
           where  mr.EventTime >= current_date - interval '1 days' and mr.EventTime < current_date
           Group By mr.UserId,
                    date(mr.ActionDate)) slog on slog.UserId=au.UserId
                                             and slog.ActionDate=au.Date
set au.Moods = slog.Moods,
    au.Activities=slog.Activities,
    au.Durarion=slog.Duration

但我收到以下错误:

错误:在"au“或”au“附近的语法错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 14:43:05

对于Redshift (或Postgres)来说,这是完全无效的语法。让我想起了Server ..。

应该像这样工作(至少在当前的Postgres上):

代码语言:javascript
复制
UPDATE mr_usage_au
SET    Moods = slog.Moods
     , Activities = slog.Activities
     , Durarion = slog.Duration       
FROM (
   select UserId
        , ActionDate::date
        , count(CASE WHEN EventId = 32 THEN UserId END) AS Moods
        , count(CASE WHEN EventId = 33 THEN UserId END) AS Activities
        , sum(CASE WHEN EventId = 10 THEN Duration END) AS Duration
   FROM   mr_session_log
   WHERE  EventTime >= current_date - 1  -- just subtract integer from a date
   AND    EventTime <  current_date
   GROUP  BY UserId, ActionDate::date
   ) slog
WHERE slog.UserId = mr_usage_au.UserId
AND   slog.ActionDate = mr_usage_au.Date;

Postgres和Redshift的情况通常是这样的:

  • 使用FROM子句连接其他表。
  • 不能对SET子句中的目标列进行表限定.

还有,红移是从PostgreSQL 8.0.2分叉的。,这是很久以前的事了。只应用了一些后来对Postgres的更新。

  • 例如,声明,但 --这就是您看到的错误背后的原因。

我简化了其他一些细节。

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

https://stackoverflow.com/questions/32251130

复制
相关文章

相似问题

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