DAX如何实现统计不存在任意'deelmarkt'类会员的组织数量
问题原因
原有公式的逻辑是筛选所有非
Deelmarkten类别的会员记录后统计关联组织数,会把「同时持有Deelmarkten和其他类别会员」的组织也计入,不符合「完全没有任何Deelmarkten类型会员」的要求。
推荐实现方案
方案1(性能最优,支持大数据量)
先通过变量提取所有持有Deelmarkten会员的组织ID,再从总组织中排除这部分即可,默认会包含完全没有任何会员的组织:
_AantalLidmaatschappenNietDeelmarkt = VAR OrganisatiesMetDeelmarkt = CALCULATETABLE( VALUES(FCT_LIDMAATSCHAPPEN[OrganisatieId]), -- 需替换为事实表中关联组织维度表的外键字段名 FCT_LIDMAATSCHAPPEN[Categorie] = "Deelmarkten" ) VAR Resultaat = CALCULATE( COUNT(DIM_ORGANISATIE[Id]), NOT(DIM_ORGANISATIE[Id] IN OrganisatiesMetDeelmarkt) ) RETURN Resultaat
如果不需要统计完全没有任何会员的组织,只需再加一层过滤条件:
_AantalLidmaatschappenNietDeelmarkt = VAR OrganisatiesMetDeelmarkt = CALCULATETABLE( VALUES(FCT_LIDMAATSCHAPPEN[OrganisatieId]), FCT_LIDMAATSCHAPPEN[Categorie] = "Deelmarkten" ) VAR OrganisatiesMetLidmaatschap = VALUES(FCT_LIDMAATSCHAPPEN[OrganisatieId]) VAR Resultaat = CALCULATE( COUNT(DIM_ORGANISATIE[Id]), NOT(DIM_ORGANISATIE[Id] IN OrganisatiesMetDeelmarkt), DIM_ORGANISATIE[Id] IN OrganisatiesMetLidmaatschap ) RETURN Resultaat
方案2(逻辑直观,适合小数据集)
逐行遍历组织表,判断该组织下是否不存在任何Deelmarkten类别的会员:
_AantalLidmaatschappenNietDeelmarkt = COUNTROWS( FILTER( DIM_ORGANISATIE, ISEMPTY( FILTER( RELATEDTABLE(FCT_LIDMAATSCHAPPEN), FCT_LIDMAATSCHAPPEN[Categorie] = "Deelmarkten" ) ) ) )
内容的提问来源于stack exchange,提问作者Passie
相关产品推荐
相关产品推荐

