我在表(Table_Name)中有一个列(Column_Name),其中包含布尔(0 | 1)值。我正在尝试为每个值计数。例如,我总共有1500行,并且我想有2个度量显示700为True,而800为False。
我尝试了以下操作,但是每个操作都只给我总行数(1500):
var endpoint = Context.CodePackageActivationContext.GetEndpoint("ServiceEndpoint");
return new WebHostBuilder()
.UseKestrel(/* SSL STUFF GOES HERE */)
.ConfigureServices(
services => services
.AddSingleton<StatelessServiceContext>(serviceContext)
.AddMvc(options =>
{
// Using the port here:
options.SslPort = endpoint.Port;
options.Filters.Add(new RequireHttpsAttribute());
}))
.UseStartup<Startup>()
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
.UseUrls(url)
.Build();
}))
我完全困惑...
我现在甚至不确定自己是否使用了正确的DAX功能。
答案 0 :(得分:1)
以下是一些可能性:
True_Measure = SUMX(Table_Name, 1*Table_Name[Column_Name])
True_Measure = SUMX(Table_Name, 1*(Table_Name[Column_Name] = TRUE()))
False_Measure = SUMX(Table_Name, 1*(Table_Name[Column_Name] = FALSE()))
False_Measure = COUNTROWS(Table_Name) - [True_Measure]
在大多数情况下,我使用1*
来将True/False
布尔值强制为数字0
或1
。
您也可以在过滤后的表格上使用COUNTROWS
。
True_Measure = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()))
False_Measure = COUNTROWS(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()))
如果您真的想使用COUNTAX
,则它看起来像这样:
True_Measure = COUNTAX(FILTER(Table_Name, Table_Name[Column_Name] = TRUE()), 1)
False_Measure = COUNTAX(FILTER(Table_Name, Table_Name[Column_Name] = FALSE()), 1)
答案 1 :(得分:1)
问题出在COUNTAX()函数的第二个参数中。它应该是您要计数的列/项目,而不是列出的相同过滤器项。
因此,这些功能应会为您提供所需的结果:
False_Measure = COUNTAX(FILTER('Table_Name', 'Table_Name'[Column_Name]=FALSE()), [Column_Name])
True_Measure = COUNTAX(FILTER('Table_Name', 'Table_Name'[Column_Name]=TRUE()), [Column_Name])
此功能的文档在here中列出。