我对SQL比较陌生,所以请多多包涵!我试图查看休眠两年后有多少客户进行购买。相关字段包括sudo bundle install
和cust_id
(同一purchase_date
可能有多个观测值,但日期不同。)我的SQL脚本使用Redshift。
我意识到我无法为cust_id
参数添加相同的内容(这没有任何意义),但是我不确定还有什么要做。
DATEDIFF
答案 0 :(得分:0)
我认为您想要lag()
。要获取相关票证:
SELECT t.*
FROM (SELECT t.*,
LAG(purchase_date) OVER (PARTITION BY cust_id ORDER BY purchase_date) as prev_pd
FROM tickets t
) t
WHERE prev_pd < purchase_date - interval '2 year';
如果要个客户的数量,请使用count(distinct)
:
SELECT COUNT(DISTINCT cust_id)
FROM (SELECT t.*,
LAG(purchase_date) OVER (PARTITION BY cust_id ORDER BY purchase_date) as prev_pd
FROM tickets t
) t
WHERE prev_pd < purchase_date - interval '2 year';
请注意,它们不使用DATEDIFF()
。这将计算两个日期值之间的边界的数量。因此,2018-12-31和2019-01-01相差1年。