以下是我的原始数据
DATE Product_id Customer_ID
----------------------------
01-JUL-14 60 A
01-AUG-14 45 A
01-SEP-14 45 A
01-SEP-14 50 A
01-OCT-14 30 A
01-JUL-14 60 B
01-AUG-14 45 B
01-SEP-14 45 B
01-OCT-14 30 B
这是我滚动计数的理想结果
MMYY Distinct Customer
Product
-------------------------
JUL-14 1 A
AUG-14 2 A
SEP-14 3 A
OCT-14 3 A
JUL-14 1 B
AUG-14 2 B
SEP-14 2 B
OCT-14 2 B
我需要它的工作方式是,对于每个 MMYY,我需要回顾 3 个月,并且可以重复 COUNT DISTINCT Products per CUSTOMER Products。而且一个客户在同一个月内可以拥有超过 1 个产品。
通常我会这样写查询
SELECT
customer_ID,
T.Date as MMYY,
COUNT(DISTINCT Product_id)
OVER (PARTITION BY customer_ID ORDER BY T.Date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
AS Last_3_month_count
FROM T
但问题是我们不能使用COUNT(DISTINCT Product_id)它给出一个错误。建议我用其他方法来解决这个问题。