【发布时间】:2018-05-03 05:05:59
【问题描述】:
我正在 Tableau 中运行查询以从几个不同的表中提取电子邮件数据。现在,这有效并产生了结果。数据处于红移状态。
查询 1
WITH activities AS (
SELECT A.lead_id, A.primary_attribute_value_id, T.name, A.activity_date
FROM marketo_sc.lead_activities A, marketo_sc.lead_activity_types T
WHERE T.name IN ('Send Email', 'Email Delivered', 'Open Email', 'Click Email', 'Unsubscribe Email') AND A.activity_type_id=T.id
GROUP BY A.lead_id, A.primary_attribute_value_id, T.name, A.activity_date
),
totals AS (
SELECT A.name AS activity_t, E.subject AS subject, E.name AS email, A.activity_date , count(*)
FROM activities A, marketo_sc.emails E
WHERE A.primary_attribute_value_id = E.id AND E.name LIKE '%Bounceback%'
GROUP BY email, activity_t, subject, A.activity_date
)
SELECT email, subject, 'sc' as program, activity_date,
sum(case when activity_t='Send Email' then count else 0 end) AS sent,
sum(case when activity_t='Email Delivered' then count else 0 end) AS delivered,
sum(case when activity_t='Open Email' then count else 0 end) AS opened,
sum(case when activity_t='Click Email' then count else 0 end) AS clicked,
sum(case when activity_t='Unsubscribe Email' then count else 0 end) AS unsubscribed
FROM totals
GROUP BY email, subject, activity_date
但是,我有另一个具有完全相同设置的表
查询 2
WITH tgactivities AS (
SELECT A.lead_id, A.primary_attribute_value_id, T.name, A.activity_date
FROM marketo_tg.lead_activities A, marketo_tg.lead_activity_types T
WHERE T.name IN ('Send Email', 'Email Delivered', 'Open Email', 'Click Email', 'Unsubscribe Email') AND A.activity_type_id=T.id
GROUP BY A.lead_id, A.primary_attribute_value_id, T.name, A.activity_date
),
tgtotals AS (
SELECT A.name AS activity_t, E.subject AS subject, E.name AS email, A.activity_date , count(*)
FROM tgactivities A, marketo_tg.emails E
WHERE A.primary_attribute_value_id = E.id AND E.name LIKE '%Bounceback%'
GROUP BY email, activity_t, subject, A.activity_date
)
SELECT email, subject, 'tg' as program, activity_date,
sum(case when activity_t='Send Email' then count else 0 end) AS sent,
sum(case when activity_t='Email Delivered' then count else 0 end) AS delivered,
sum(case when activity_t='Open Email' then count else 0 end) AS opened,
sum(case when activity_t='Click Email' then count else 0 end) AS clicked,
sum(case when activity_t='Unsubscribe Email' then count else 0 end) AS unsubscribed
FROM tgtotals
GROUP BY email, subject, activity_date
我尝试在它们之间进行 UNION,但出现语法错误
[Amazon][RedShift ODBC] (30) 尝试执行查询时发生错误:错误:在“WITH”第 26 行或附近出现语法错误:WITH tgactivities AS (^
关于为什么会发生这种情况的任何帮助或想法?
【问题讨论】:
-
只需将它们都写入临时表并合并临时表
-
@DanielMarcus 那会是什么样子?
-
以下内容适合您吗?
-
@DanielMarcus 仅对 1 个表执行该查询时,我现在得到“[Amazon][RedShift ODBC] (30) 尝试执行查询时发生错误:错误:在或附近出现语法错误” SELECT" LINE 9: SELECT A.name AS activity_t, E.subject AS subject, E.name ... ^"
-
OK,见下方编辑
标签: sql amazon-redshift tableau-api