【问题标题】:Add column of customer's past purchase total at time of current purchase and find rate of purchases that are from a returning customer - SQL在当前购买时添加客户过去购买总额的列并查找来自回头客的购买率 - SQL
【发布时间】:2023-03-24 09:30:02
【问题描述】:

我正在使用包含商店购买历史记录的表格。有一个购买 ID、一个日期列和一个客户 ID。我正在尝试(到目前为止没有取得多大成功)做两件事:

为每次购买添加一列,说明客户在此之前(上个月)进行了多少次购买。我首先加入了自己的桌子,但还没有走得更远。我知道我需要以某种方式过滤日期,以便仅计算在此日期之前且不超过一个月前的购买。关于解决这个问题的简单方法有什么建议吗?

我想看到的第二件事是每周回头客交易率是多少。也就是说,最近(上个月)购买的人的购买比例是多少。理想情况下,我可以从我的 sql 查询中绘制这个图表,我希望得到一个日期、每周总计(截至日期的 7 天)和每周费率。我一直在阅读滚动窗户,老实说,我很难理解它。不幸的是,我的 SQL 级别仍然很低。任何有关相对简单的方法的提示将不胜感激。 谢谢

【问题讨论】:

  • 太宽泛了。尝试阅读:stackoverflow.com/help/how-to-ask
  • 可能不需要添加列,即时计算之前进行的购买。你所要求的不仅仅是可能的,需要一些子查询。将您的问题分解为多个部分,分享您拥有的架构和您尝试过的 SQL。 Stack 会从那里拿走它……但是,像这样的帖子会被关闭。

标签: sql aggregates


【解决方案1】:

我需要查看表的数据结构才能更好地回答您的问题。但是在我的脑海中,您似乎只需要一个简单的 SELECT COUNT。

因此,这样的事情将返回过去一个月内来自单个客户的所有交易:

SELECT COUNT(purchase_id)
FROM purchases
WHERE customer_id='some_customer_id'
AND date >= DATEADD(m, -1, GETDATE());

至于您的第二个问题,您可能希望设置一个每月运行一次查询的工作(jenkins 等)。您将绘制的结果。结帐https://oss.oetiker.ch/rrdtool/ 用于绘图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2020-07-30
    • 2014-09-28
    相关资源
    最近更新 更多