小编Pat*_*bug的帖子

如何使用 Amazon Redshift 中另一个表的值更新列

我有 2 张桌子:

表“A”:

Old_eid    new_eid
<null>     <null>
a          <null>
b          <null>
c          <null>
Run Code Online (Sandbox Code Playgroud)

表“B”:

eid1    eid2
a         d
b         e
c         f
Run Code Online (Sandbox Code Playgroud)

我想更新表“A”如下:

Old_eid    new_eid
<null>     <null>
a             d
b             e
c             f
Run Code Online (Sandbox Code Playgroud)

我提出了以下查询,但它给了我一个错误:

UPDATE A
   SET new_eid = (SELECT eid2
                  FROM A a
                    JOIN B b ON a.old_eid = b.eid1)
WHERE old_eid IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

但它给了我以下错误:

UPDATE A
       SET new_eid = (SELECT eid2
                      FROM A a
                        JOIN B b ON a.old_eid = b.eid1)
    WHERE old_eid IS NOT NULL …
Run Code Online (Sandbox Code Playgroud)

mysql sql postgresql amazon-redshift

3
推荐指数
1
解决办法
7755
查看次数

修复在 Amazon Redshift 上计算 DAU 和 MAU 时的 MAU 问题

根据这篇文章,我使用以下查询来计算 MAU 和 DAU :

WITH dau AS
(
  SELECT TRUNC(created_at) AS created_at,
         COUNT(DISTINCT member_id) AS dau
  FROM table ds
  WHERE ds.created_at BETWEEN '2018-09-03' AND '2018-09-08'
  GROUP BY TRUNC(created_at)
)
SELECT created_at,
       dau,
       (SELECT COUNT(DISTINCT member_id)
        FROM table ds
        WHERE ds.created_at BETWEEN created_at - 29*INTERVAL '1 day' AND created_at) AS mau
FROM dau
ORDER BY created_at
Run Code Online (Sandbox Code Playgroud)

我尝试运行此查询并得到以下结果:

2018-09-03  12844   3976132
2018-09-04  54236   3976132
2018-09-05  58631   3976132
2018-09-06  59786   3976132
2018-09-07  52317   3976132
2018-09-08  4   3976132
Run Code Online (Sandbox Code Playgroud)

可以清楚地看到 MAU 列有重复值。我该如何解决?任何指示都会有帮助。

sql amazon-redshift

3
推荐指数
1
解决办法
1517
查看次数

替换 Amazon Redshift 中列中的单引号字符

我在以下格式的表中有一些数据Amazon Redshift

Column1    Column2
'a'          'b'
Run Code Online (Sandbox Code Playgroud)

我想从此表中删除单引号字符并获取如下数据:

Column1    Column2
a            b
Run Code Online (Sandbox Code Playgroud)

我原以为该Replace函数可以解决问题,因此我编写了以下查询:

select replace(column1,''',''),
       replace(column2,''','')
from table
Run Code Online (Sandbox Code Playgroud)

但这不起作用,并给了我Amazon](500310) Invalid operation: unterminated quoted string at or near "''',''). 我试图转义单引号字符,\但即使这样也不起作用。

我还尝试使用以下查询:

select replace(column1,"'",''),
           replace(column2,"'",'')
    from table
Run Code Online (Sandbox Code Playgroud)

但它给了我错误 [Amazon](500310) Invalid operation: column "'" does not exist in <tablename>

那么如何从我的数据中删除这些单个字符呢?

任何帮助将非常感激。

TIA。

mysql amazon-redshift

2
推荐指数
2
解决办法
6895
查看次数

如何获取给定时间和状态信息的本地时区

Python我正在使用和的组合Amazon Redshift。我有来自不同用户的点击量以及有关这些点击量的一些数据。这可以通过以下格式可视化:

UTCTime    State    IP    Country
<time>    CA    10.1.1.1    US
<time>    AZ    10.1.1.2    US
<time>    NY    10.1.1.3    US
Run Code Online (Sandbox Code Playgroud)

我想将此 UTC 时间转换为当地时间,因为上述点击来自不同的时区。中有一个函数Amazon Redshift

CONVERT_TIMEZONE ( ['source_timezone',] 'target_timezone', 'timestamp')
Run Code Online (Sandbox Code Playgroud)

但这需要Target timezone. 根据此信息,我如何找到此目标时区。

如果还有其他方法可以做到这一点,我也很高兴知道。

任何帮助将不胜感激。

python sql datetime amazon-redshift

2
推荐指数
1
解决办法
5161
查看次数

标签 统计

amazon-redshift ×4

sql ×3

mysql ×2

datetime ×1

postgresql ×1

python ×1