如何统计同一客户下特定初始订单后订购的特定订单?

问题描述 投票:0回答:1

使用 Spotfire 语法,如何统计购买初始产品后同一客户 ID 购买特定产品的订单数量?示例:

我需要知道同一客户订购纸张后购买了多少活页夹和艺术品。有多少铅纸订单变成了活页夹订单,我需要计数,然后活页夹订单的百分比是初始纸张购买,艺术品的百分比是初始纸张购买。

如果(( [类别]=“活页夹”) OR (([类别]=“艺术”) 和 ( Sum(If(([类别]=”纸”) 和 ([订单日期]<=Max([Order Date]) OVER (Intersect([Customer ID]))),1,0))>0)), 1、 0)

该标志有效,但它仍在计算在纸质之前购买的活页夹和艺术品,我只想计算这些在纸质之后由同一客户购买的物品。

see example table click here

conditional-statements expression limit percentage spotfire
1个回答
0
投票

我建议采用这种方法。

首先定义一个 [Category_Type] 列,将“A”分配给纸张,将“B”分配给艺术和活页夹,将“C”分配给其余的。 这使得进一步定义 if 语句变得更加容易和透明。我使用 A、B、C 因为我想利用下一栏中的字母顺序。

case  
when [Category]='Paper' then 'A' 
when ([Category]='Art') or ([Category]='Binders') then 'B'
else 'C'
end

然后将您的目标列定义为:

case  when ([Category_Type]='B') and (Min([Category_Type]) over (Intersect([Customer ID],AllPrevious([Order Date])))='A') then 1 
else 0 
end

由于我们将 A 分配给 Paper,因此语句

Min([Category_Type]) over (Intersect([Customer ID],AllPrevious([Order Date])))='A'

应捕获当前客户在订购纸张时先前交易中的所有事件。因此,如果当前类别是 B 类型,而我们过去有 A 类型,则算作 1。

© www.soinside.com 2019 - 2024. All rights reserved.