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文档/仪表板中的选择器。
谢谢你回到我身边。事实和你描述的第一个指标是多值的。它会返回两个字段:Value和field1,这两个字段会有多个值。这是可能的微观策略? – ndderwerdo
我所描述的将会返回(或多或少)你所要求的查询。在MicroStrategy中,度量标准是一个基于事实(它应该是事实表中的数字列)的计算,Field1将是MicroStrategy中的一个属性。我从这里帮不了你,你应该找到一个能够帮助你理解更好的MSTR或者告诉你如何解决这个问题的人 – mucio