只要有一个标准的订单表:
尝试编写一个查询,为每个客户生成一个列,显示自上次购买以来的天数。如果客户没有先前的订单,则该值将为零。
我试过这样的事情:
WITH user_data AS (
SELECT customer_id, order_total, order_date::DATE,
ROW_NUMBER() OVER (
PARTITION BY customer_id ORDER BY order_date::DATE DESC
)
AS order_count
FROM transactions
WHERE STATUS = 100 AND order_total > 0
)
SELECT * FROM user_data WHERE order_count < 3;
Run Code Online (Sandbox Code Playgroud)
我可以将其输入到 tableau 中,然后使用一些表计算来处理数据,但我真的很想了解 SQL 方法。我的方法也只分析最近的 2 笔交易,这是一个缺点。
谢谢
postgresql ×1