在 DAX 中使用过滤器求和但不使用过滤器关键字

问题描述

我试图在同一列上找到两个过滤器的总和。我们可以使用 FILTER 关键字,但是太费时间了。所以我做了以下事情,但似乎没有任何效果。永远不会应用第二个过滤器。

1.

MEASURE pop_hd_new[Connectivity %] = CALCULATE(
DIVIDE(
CALCULATE(
       SUM(pop_hd_new[Connected]),'prodhier_new'[PROD_TYPE_DESC] in { "Client Solutions PBU","Enterprise Solution Group PBU"}),CALCULATE(
      SUM(pop_hd_new[SVC_TAG_CNT]),'prodhier_new'[PROD_TYPE_DESC] in {"Client Solutions PBU","Enterprise Solution Group PBU"})
   ))  
MEASURE pop_hd_new[Connectivity %] = CALCULATE(
DIVIDE(
CALCULATE(
       SUM(pop_hd_new[Connected]),prodhier_new,'prodhier_new'[PROD_TYPE_DESC] = "Client Solutions PBU" || 'prodhier_new'[PROD_TYPE_DESC] = "Enterprise Solution Group PBU"),'prodhier_new'[PROD_TYPE_DESC] = "Client Solutions PBU" || 'prodhier_new'[PROD_TYPE_DESC] = "Enterprise Solution Group PBU")
   ))

请提出一些解决方案。

解决方法

您可以尝试对第一种方法进行重构:

MEASURE pop_hd_new[Connectivity %] =
    CALCULATE (
        DIVIDE ( SUM ( pop_hd_new[Connected] ),SUM ( pop_hd_new[SVC_TAG_CNT] ) ),'prodhier_new'[PROD_TYPE_DESC]
            IN { "Client Solutions PBU","Enterprise Solution Group PBU" }
    )

自己检查它是否比这个 FILTER 版本更快或更慢:

MEASURE pop_hd_new[Connectivity %] =
    CALCULATE (
        DIVIDE ( SUM ( pop_hd_new[Connected] ),FILTER (
            ALL ( 'prodhier_new'[PROD_TYPE_DESC] ),'prodhier_new'[PROD_TYPE_DESC] = "Client Solutions PBU"
                || 'prodhier_new'[PROD_TYPE_DESC] = "Enterprise Solution Group PBU"
        )
    )

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...