我有一张桌子表1:
F1 | F2
-------
a | 1
a | 2
b | 1
c | 2
我想定义一个允许我生成表的度量MyMeasure:
F2 | Count
----------
1 | 2
2 | 1
Count中的值来自CUBEVALUE函数,如:
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[MyMeasure]","[Table1].[F2].&[1]")
=CUBEVALUE("ThisWorkbookDataModel","[Measures].[MyMeasure]","[Table1].[F2].&[2]").
MyMeasure的逻辑应该是:
1)找到F1中每个组的最小值F2(a – > 1,b – > 1,c – > 2).
2)F1中与前一点的指定值不同的计数项目.
我能够使用数据模型中的辅助列来完成它,但我想用一个度量来实现它.
最近的尝试是:
=COUNTROWS(
GENERATE(
all(Table1[F2])
,SUMMARIZE(
all(Table1),Table1[F1],"sth",min(Table1[F2])
)
)
)
据我所知,我搞砸了上下文,结果我得到了:
F2 | Count
----------
1 | 6
2 | 6
在T-SQL中,我可以使用查询生成输出:
select distinct
t1.F2
,count(*) over (partition by t1.F2)
from (select distinct F2 from Table1) t1
right join (select F1, min(F2) as MyMin from Table1 group by F1) t2
on t1.F2 = t2.MyMin
最佳答案 我把我的两分钱放进去,你可以创建一个计算表,它返回两列中不同的[F2]值及其最小值的计数.我不确定您是否可以从一个度量中获得最小值.
CalculatedTable =
GROUPBY (
GROUPBY ( Table, Table[F1], "Minimum", MINX ( CURRENTGROUP (), Table[F2] ) ),
[Minimum],
"MinCount", COUNTAX ( CURRENTGROUP (), [Minimum] )
)
如果这有帮助,请告诉我.