我无法弄清楚如何在MySQL中执行此操作:
我有桌子交易和客户。
我想将第一个月的每个客户的销售额分组到ClientMonth 0,1,2中,这样我就可以了解所有客户作为一个群体的销售往往会如何变化(无论他们什么时候开始与我们打交道)< / p>
我一直试图用
做到这一点DATEDIFF(client_firstdeal_date.firstdeal_date, MAX(dealdate)+1) 作为TenureDays, DATEDIFF(MAX(dealdate)+1, CURDATE()) AS FallowDays
并希望通过TenureDays进行分组,但我没有得到明智的结果,我确信我滥用了DATEDIFF,MAX和GROUP BY的混合。
编辑: 阅读我写的内容,并更多地思考阿迪在下面所说的内容,我开始思考,“我到底想要什么(在每个阶段)”
无论如何,我用下面的问题解决了我的问题(我真的让自己太难了):
选择
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
来自交易t
LEFT OUTER JOIN client_firsttrans_date ft
ON t.accountno = ft.accountno
加入客户c
ON c.accountno = t.accountno
GROUP BY
ClientMonth,
分割
client_firsttrans_date是一个我认为更容易
的视图我对结果很满意,因为它输出到一个漂亮的图表,显示交易数量在客户生命周期中如何下降,其中一些部门比其他部门更有损。
感谢所有花时间看我问题的人。