Power BI中SQL转DAX结果不符求助:子查询转换后数值异常
SQL转DAX后结果不符,求修正方案
我编写了一段SQL子查询,尝试在Power BI中将其转换为DAX表达式,但得到的结果与SQL计算结果差距极大,逻辑未对齐。
SQL代码及结果
select sum(x.totalbays) from ( select distinct day_id, sum(distinct ranged_bays) as totalbays from overviewTable group by day_id ) x
SQL计算结果:15,219,683.76
当前DAX表达式及结果
TestMeasure = SUMX ( SUMMARIZE ( 'Overview Table', 'Overview Table'[day_id], "TotalBays", SUM('Overview Table'[ranged_bays])), [TotalBays] )
DAX计算结果:87,023,857.19
问题原因及修正方案
问题出在逻辑对齐上:SQL内层查询对每个day_id分组下的ranged_bays去重后再求和,而当前DAX直接对ranged_bays求和,未做去重处理,导致重复值被多次累加,结果偏大。
修正后的DAX表达式,需要在每个day_id分组内先取ranged_bays的唯一值再求和,与SQL逻辑保持一致:
TestMeasure = SUMX ( SUMMARIZE ( 'Overview Table', 'Overview Table'[day_id], "TotalBays", SUMX(DISTINCT('Overview Table'[ranged_bays]), [ranged_bays]) ), [TotalBays] )
或者使用GROUPBY的写法:
TestMeasure = SUMX ( GROUPBY ( 'Overview Table', 'Overview Table'[day_id], "TotalBays", SUMX(DISTINCT(CURRENTGROUP()[ranged_bays]), CURRENTGROUP()[ranged_bays]) ), [TotalBays] )
内容的提问来源于stack exchange,提问作者jcoke
相关产品推荐
相关产品推荐

