使用SQL的队列表
我有一篇文章解释了使用SQL进行客户保留分析的指南 我已经应用了解释过的SQL代码,但我总是会出错 下面的代码应该指出分析客户保留率的队列表是通过使用队列,并通过每个用户的第一次访问来定义他们,然后查看他们随时间的推移如何返回的:第一个月,新用户,保留月,保留,保留百分比使用SQL的队列表,sql,netezza,Sql,Netezza,我有一篇文章解释了使用SQL进行客户保留分析的指南 我已经应用了解释过的SQL代码,但我总是会出错 下面的代码应该指出分析客户保留率的队列表是通过使用队列,并通过每个用户的第一次访问来定义他们,然后查看他们随时间的推移如何返回的:第一个月,新用户,保留月,保留,保留百分比 WITH first_visit AS (SELECT SUBS_ID, min(date_trunc('month', (CUST_LOCAL_START_DATE::DATE))) AS f
WITH first_visit AS
(SELECT SUBS_ID,
min(date_trunc('month', (CUST_LOCAL_START_DATE::DATE))) AS first_month
FROM ANALYTICS.tmp.Rate_Plan_Hierarchy
GROUP BY 1
),
New_users AS
(SELECT first_month,
count(DISTINCT SUBS_ID) AS new_users
FROM first_visit
GROUP BY 1)
SELECT first_month,
new_users,
retention_month,
retained,
retention_percent
FROM (SELECT first_month,
new_users,
( visit_tracker.visit_month - visit_log.visit_month ) AS
retention_month,
Count(DISTINCT visit_tracker.SUBS_ID)
AS
retained,
Count(DISTINCT visit_tracker.SUBS_ID)/new_users
AS
retention_percent
FROM ANALYTICS.tmp.Rate_Plan_Hierarchy visit_log
LEFT JOIN ANALYTICS.tmp.Rate_Plan_Hierarchy AS visit_tracker
ON visit_log.SUBS_ID = visit_tracker.SUBS_ID
AND date_trunc('month', CAST (visit_log.CUST_LOCAL_START_DATE AS DATE)) < date_trunc('month', CAST (visit_tracker.CUST_LOCAL_START_DATE AS DATE))
LEFT JOIN new_users
ON new_users.first_month = first_visit.first_month
GROUP BY 1,
2)t
我猜错误就在这个区域,我无法从子句中捕捉到tbale应该在哪个位置,以及左Join应该在哪个位置
LEFT JOIN ANALYTICS.tmp.Rate_Plan_Hierarchy AS visit_tracker
ON visit_log.SUBS_ID = visit_tracker.SUBS_ID
AND date_trunc('month', CAST (visit_log.CUST_LOCAL_START_DATE AS DATE)) < date_trunc('month', CAST (visit_tracker.CUST_LOCAL_START_DATE AS DATE))
LEFT JOIN new_users
ON new_users.first_month = first_visit.first_month
您是否检查过缺少/多余的逗号或不平衡的括号?准确的错误代码是什么?