0

我不知道如何在 MySQL 中执行此操作:

我有表交易和客户。

我想将每个客户第一个月的销售额分组为 ClientMonth 0、1、2,这样我就可以查看所有客户作为一个组的销售额随时间的变化情况(无论他们何时开始与我们打交道)

我一直在尝试这样做

DATEDIFF(client_firstdeal_date.firstdeal_date, MAX(dealdate)+1) AS TenureDays, DATEDIFF(MAX(dealdate)+1, CURDATE()) AS FallowDays

并想按 TenureDays 进行分组,但我没有得到合理的结果,而且我确定我误用了 DATEDIFF、MAX 和 GROUP BY 的组合。

编辑:阅读我写的内容并更多地思考阿迪在下面所说的话,我开始思考,“我到底想要什么(在每个阶段)”

无论如何,我用下面的方法解决了我的问题(我真的让自己太难了):

SELECT
c.division, SUM(t.profitgbp), COUNT(ts.id), SUM(t.profitgbp)/COUNT(t.id) AS AverageProfPerTrans, ROUND(DATEDIFF(t.transdate,ft.firsttrans_date)/30, 0) AS ClientMonth FROM transactions t LEFT OUTER JOIN client_firsttrans_date ft
ON t.accountno=ft.accountno JOIN clients c
ON c.accountno=t.accountno GROUP BY
ClientMonth, Division

client_firsttrans_date 是我猜想使这更容易的视图

我对结果很满意,因为它输出了一个漂亮的图表,显示了交易数量在客户的生命周期中是如何下降的,其中一些部门比其他部门损失更大。

感谢所有花时间看我的问题的人。

4

0 回答 0