使用Good Data MAQL Metric计算OldActive / Dormant客户

时间:2015-11-17 04:51:06

标签: customer maql

我有两个简单的数据集:

表格订单:
ID,客户,日期,价格

表客户:
ID,名称

我想创建2个指标,每个月会返回OldActiveDormant个客户的数量(例如计算报告月份的当前快照)。

OldActive客户是客户,其首次订单不在报告月份,并且在报告月份也有订单

Dormant客户是客户,自上次订购后3个月或更长时间内没有订购。

所以例如: 客户1将于2015年1月首次亮相。

在报告中,它应该在2015年4月被视为休眠

然后,如果他将在2015年6月进行第二次订购,他将被视为OldActive,并且将清除休眠状态。

指标的结果输出应如下所示:

Date     Dormant   OldActive
2015/Jan 0         0          <- firs order
2015/Feb 0         0
2015/Mar 0         0
2015/Apr 1         0          <- become dormant, because hi didnt made order for 3 or more months
2015/May 1         0
2015/Jun 0         1          <- second order, status changed to OldActive
2015/Jul 0         0          <- status OldActive cleared, because he did not made any other order in this month
2015/Aug 0         0
2015/Sep 0         0
2015/Oct 1         0          <- become dormant again
....

在MAQL中是否可以这样?

1 个答案:

答案 0 :(得分:0)

如果没有准确查看数据结构,尤其是日期结构的方式,则很难回答这些问题。  如果您在支持中得到答案,请在此处发布,MAQL在线提供的文档很少。

如果有人比我更了解,他可以编辑这篇文章,我在这里做的许多肯定是由于缺乏文档。

以下是一些您可以启发的MAQL代码示例:

对于休眠:

SELECT MAX((SELECT DateDimension BY SalesId))BY MemberID,ALL OTHER

将为您提供会员订单的最后日期

您必须对其进行调整才能考虑在“日期”列之前进行的销售。由于日期维度的定义方式,在MAQL中这样做非常棘手。 使用先前定义的度量标准作为中介,您可以定义“休眠”度量标准

对于“OldActive”,您将使用相同类型的中间变量:

SELECT MAX((SELECT DateDimension BY SalesId))BY MemberID,ALL OTHER

SELECT MIN((SELECT DateDimension BY SalesId))BY MemberID,ALL OTHER

通过第一个变量在当前月份,第二个变量在另一个变量中来定义OldActive。

同样,在这个答案中没有解决很多困难的部分,因为你的问题没有说明你的日期是如何构建的,以及时间数据的处理是MAQL文档的一个黑点