【发布时间】:2022-01-19 22:29:00
【问题描述】:
我希望根据他们的忠诚度等级来滚动统计客户。每层都基于 LTV(0-124.99、125-198.99、199-749.99 和 750+)。这就是我现在所拥有的,它只是为每个日期返回 0,而多年来散布着一些 1。谁能帮忙解决一下windows功能?
SELECT TRUNC(CD.date) AS "day", tier,
COUNT(customer_email) OVER(PARTITION BY TRUNC(CD.date), tier ORDER BY
TRUNC(CD.date), tier
ASC ROWS UNBOUNDED PRECEDING) AS "customers"
FROM {{ @public_fact_criquet_loyalty_master AS LM}}
RIGHT JOIN public.dim_calendar_dates CD ON TRUNC(CD.date) = TRUNC(LM.timestamp)
WHERE TRUNC(CD.date) BETWEEN '2011-11-09' AND CURRENT_DATE
GROUP BY TRUNC(CD.date), tier, customer_email
ORDER BY TRUNC(CD.date), tier ASC
【问题讨论】:
-
一条黄金法则是避免发布images的数据,我们不能从图像中剪切和粘贴,示例数据在您的问题中应该是consumable text,理想情况下为create 和 insert 语句,或者DB<>Fiddle
-
谢谢斯图。该数据只是表明我无法让 windows 功能实际产生正确的结果,如我的问题中所述,不提供实际数据。
标签: sql amazon-redshift