Qlikview Microstrategy中的“Aggr”函数等效

问题描述:

我试图在Microsoftrategy中复制Qlikview Aggr函数。我有下面的Qlikview代码,我认为是等效的sql翻译。这些字段将是我的数据集中的属性。这个想法是,如果您从仪表板中的筛选器中选择一个值,它会过滤度量标准中的“where”子句。有没有办法在微观策略中为参数建立参数?或者是否有人建议如何构建等效度量标准?我真的在我的子查询部分挠头,我不知道是否可以将其作为一个事实构建,然后从中构建一个度量标准?Qlikview Microstrategy中的“Aggr”函数等效

Qlikview: 

Max({<Field1=>} Aggr(Sum({<Field2={'Value1'},Field3={'Value2'}, Field1=>} ThingCount), Field1)) 






SQL Equivalent: 

select 
Max(Value) 
    from(
    select Sum(case when Field2 in ('Value1') 
          and Field3 in ('Value2') 
          and Field1 is not NULL 
        then ThingCount end) as Value, 
    Field1 
    from Table 
    where Field1 = "FilterValue" 
    group by Field1 
    )a 

要获得你想你应该在MSTR建立两个指标的SQL:

  • 一个计算校验和,用的情况下(实际上我会把情况下,在事实的定义) 。

  • 第二个度量(级别度量)将计算MAX忽略Field1属性。

where条件只是MSTR文档/仪表板中的选择器。

+0

谢谢你回到我身边。事实和你描述的第一个指标是多值的。它会返回两个字段:Value和field1,这两个字段会有多个值。这是可能的微观策略? – ndderwerdo

+0

我所描述的将会返回(或多或少)你所要求的查询。在MicroStrategy中,度量标准是一个基于事实(它应该是事实表中的数字列)的计算,Field1将是MicroStrategy中的一个属性。我从这里帮不了你,你应该找到一个能够帮助你理解更好的MSTR或者告诉你如何解决这个问题的人 – mucio