【发布时间】:2017-01-07 22:29:12
【问题描述】:
我有一张桌子 Table1:
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 (a -> 1, b -> 1, c -> 2) 中的每个组找到最小值 F2。
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
【问题讨论】: