创建DAX对等度量

时间:2014-02-14 09:23:04

标签: dax

情景:

我们是一家保险经纪公司。我们的事实表是索赔指标当前表。此表具有多个声明sid-s的唯一行,因此,countrows(声明当前)给出了唯一声明数的正确计数。现在,这个表也有clientid和industrysid。客户与行业之间的关系是,1个行业可以拥有多个客户,1个客户只能属于1个行业。

现在,让我们考虑一个名为claimlagdays的事实,它以claimid的粒度出现在表中。

现在,一个要求是,我们需要找出“同行”总和(claimlagdays)。对于特定客户,这基本上计算为:

客户行业的总和(claimlagdays)为此特定客户端过滤(减去)总和(claimlagdays)。我们称这个措施为A。

与上面类似,我们需要计算“对等”声明计数,这是针对此特定客户端的客户端被过滤(减去)声明数量的行业的声明计数。 我们称这个措施为B。

在最后的计算中,我们需要将A除以B,得到​​“同伴”平均滞后天数。

所以基本上,这里的困难部分是:找到正在过滤的特定客户的行业,然后将此过滤器应用于事实表(声明指标当前)以找出总索赔数/其他仅适用于此行业的指标。当然,从这个行业数据中减去客户数字以获得“同行”衡量标准。必须为每一行完成此操作,保留可能在切片器中应用的任何其他过滤器(日期/业务单位等)

还有一些其他过滤器静态需要考虑,这些过滤器存在于其他表中,例如“索赔类型”(=赔偿/医疗)和索赔状态(=已关闭)。

我的解决方案:

对于措施B

我尝试创建一个计算列,如下:

Claim Count_WC_MO_Industry=COUNTROWS(FILTER(FILTER('Claim Metrics Current',RELATED('Claim WC'[WC Claim Type])="Medical" && RELATED('Coverage'[Coverage Code])="WC" && RELATED('Claim Status'[Status Code])="CL"),EARLIER('Claim Metrics Current'[IndustrySID])='Claim Metrics Current'[IndustrySID]))

然后我创建了度量

Claim Count - WC MO Peer:=CALCULATE(SUM([Claim Count_WC_MO_Industry])/[Claim - Count])- [Claim - Count WC MO]

{我做了一笔钱,因为表格模型不直接允许我使用计算列作为度量,没有任何聚合。而且,这没有任何意义,因为表格模型不会理解要采取哪一行}

上述措施的第二部分显然是特定客户的索赔数,并附上上述过滤器。

我的解决方案出现问题:

这些数字都是错误的。我没有得到客户明智或年度分离的行业数量或同行数量。我只得到了衡量标准中所有行业数量的总和。

我怀疑这是因为正在进行的总和。但是,我真的没有选择,是的,因为我不能使用计算列作为没有聚合的度量...

如果您认为此处提供的信息不充分,并且您希望我提供一些数据(假人),请告诉我。我很乐意帮忙。

1 个答案:

答案 0 :(得分:0)

因此,假设您通过前端过滤特定客户端,听起来只是想要

package main

import "fmt"

type name struct {
    X string
}

func main() {
    a := []name{name{"Abbed"}, name{"Ahmad"}, name{"Ghassan"}}
    nameReader(a)
} 

func nameReader(array []name) {
    for i := 0; i < len(array); i++ {
        fmt.Println(array[i].X)
    }
}

只是适当客户延迟天数的基本衡量标准,包括您的静态过滤器。

ClientLagDays :=
CALCULATE (
    SUM ( 'Claim Metrics Current'[Lag Days] ),
    Static Filters Here
)

这会删除客户端上的过滤器,但会保留Industry上的过滤器以获得整个行业的延迟天数。

IndustryLagDays :=
CALCULATE (
    [ClientLagDays],
    ALL ( 'Claim Metrics Current'[Client] ),
    VALUES ( 'Claim Metrics Current'[IndustrySID] )
)

直截了当。

然后重复索赔计数,然后为PeerLagDays:=[IndustryLagDays]-[ClientLagDays] [PeerLagDays] / [PeerClaimCount]