我有 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) 根据这篇文章,我使用以下查询来计算 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 列有重复值。我该如何解决?任何指示都会有帮助。
我在以下格式的表中有一些数据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。
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. 根据此信息,我如何找到此目标时区。
如果还有其他方法可以做到这一点,我也很高兴知道。
任何帮助将不胜感激。