Powerbi 我可以使用什么GROUPBY聚合器来测试分组值是否等于常数?

Powerbi 我可以使用什么GROUPBY聚合器来测试分组值是否等于常数?,powerbi,dax,Powerbi,Dax,情况:我有一个表Bob,其中每行有一组列,包括一个结果sessiond1、sessiond2 目标:我想按session1和session2分组,看看组中是否有结果为0;我希望多行具有相同的ID1和ID2值。然后我想将结果为0的组数除以所有组数 问题:我想我想要的是: GROUPBY( Bob, sessiond1, sessiond2, “至少成功1次”, ?) 但我可以使用什么聚合器???要获取一个布尔值,指示组中的任何结果是否等于0 此外,如果我想统计成功的组数,是否只需将GROUPBY包

情况:我有一个表Bob,其中每行有一组列,包括一个结果sessiond1、sessiond2

目标:我想按session1和session2分组,看看组中是否有结果为0;我希望多行具有相同的ID1和ID2值。然后我想将结果为0的组数除以所有组数

问题:我想我想要的是:
GROUPBY(
Bob,
sessiond1,
sessiond2,
“至少成功1次”,
?)

但我可以使用什么聚合器???要获取一个布尔值,指示组中的任何结果是否等于0


此外,如果我想统计成功的组数,是否只需将GROUPBY包装在一个计数中?

考虑以下示例表:

您可以尝试使用以下DAX创建新的汇总表:

Summary = GROUPBY(Bob, Bob[SessionID1], Bob[SessionID2],
"Number of rows", COUNTX(CURRENTGROUP(), Bob[Result]),
"Number of successes", SUMX(CURRENTGROUP(), IF(Bob[Result] = 0, 1, 0)))
然后,可以为成功率添加计算列:

Success ratio = Summary[Number of successes] / Summary[Number of rows]
结果:


编辑:

如果您想要计算的是类似于
anysuccess
,那么
summary
可能是比
GROUPBY
更好的选择,因为它们的功能性质

Summary2 = SUMMARIZE(Bob, Bob[SessionID1], Bob[SessionID2], 
"Any success", IF(COUNTROWS(FILTER(Bob, Bob[Result] = 0)) > 0, 1, 0),
"Number of rows", COUNTROWS(Bob))
结果:


什么是Bob[Result]=0,1,0?根据您的要求查看组中是否有结果为0,因此如果结果为0,我将对行进行计数/求和。您可以根据您对“成功”的相应定义对其进行更改。@Craig我添加了一个替代解决方案
Summary
对于这种情况是一个更好的选择。当然,你所说的也是可行的,所以你可以选择你喜欢的任何一个。@Craig是的,它会的。您只需记住创建表之间的关系,以允许过滤工作。