MySQL使用DATEDIFF(MAX(日期)...在SELECT中

时间:2013-08-21 21:38:39

标签: mysql group-by datediff

我无法弄清楚如何在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是一个我认为更容易

的视图

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

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

0 个答案:

没有答案