【发布时间】:2021-08-09 01:09:49
【问题描述】:
我正在尝试滚动计算客户生命周期价值。我使用的基本公式是'SUM(revenue) / COUNT(DISTINCT CUSTOMERS)',但是当试图从它向后移动的任何一天获取这些数字时遇到了问题。我下面的代码不正确,但也尝试了同样不起作用的 PARTITION 代码。
CREATE TEMP TABLE customer_revenue AS
(
SELECT TRUNC(timestamp) AS "order_date", COUNT(DISTINCT customer_email) AS "customers",
SUM(revenue)-SUM(discount)-SUM(shipping)-SUM(tax) AS "revenue"
FROM public.fact_shopify_orders
GROUP BY TRUNC(timestamp)
);
SELECT TRUNC(SO.timestamp) AS "date", SUM(CR.revenue) / COUNT(customers) AS "LTV"
FROM customer_revenue CR
LEFT JOIN public.fact_shopify_orders SO ON CR.order_date = SO.timestamp
WHERE CR.order_date <= SO.timestamp
GROUP BY TRUNC(SO.timestamp)
ORDER BY TRUNC(SO.timestamp) DESC
【问题讨论】:
-
样本数据和期望的结果真的很有帮助。
-
由于公司政策,我无法提供示例数据,但我想要的是按天计算的 LTV,所以假设我想要 5/15/21 我想要订单日期为或21 年 5 月 15 日之前订购的唯一客户数量
标签: sql amazon-redshift partition rolling-computation