1

我有两个简单的数据集:

表订单:
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 中是否有可能发生这样的事情?

4

1 回答 1

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 文档的一个黑点

于 2015-11-19T00:24:32.507 回答