SUM 与 SUMX 的用例是什么?

问题描述 投票:0回答:2

我正在学习 DAX。

作为衡量标准,我可以写:

Profit = SUM(Sales[SalesAmt])-SUM(Sales[ProdcutionCost])

这给了我利润。

如果我这样做,我会得到相同的结果:

Profit = SUMX(Sales,Sales[SalesAmt]-Sales[ProdcutionCost])

那么 SUM 和 SUMX 的用例或区别是什么?

powerbi dax
2个回答
4
投票

实际上,

SUM
只是对列进行简单求和的语法糖。

SUM ( 'Table'[Column] )

是(并且将在查询时由引擎翻译成)

的简写
SUMX ( 'Table' , 'Table'[Column] )

同样,该用例适用于您只想要一个简单的总和时。如果您想在表格中在行上下文中执行更多操作,则需要调用

SUMX

考虑这样一种情况,您有一个这样的表,其中包含单价和数量,并且想要计算总收入:

交易ID 产品编号 单价 数量
1 1 5.99 5
1 2 10.49 3
2 1 5.99 3

在这种情况下你不能这样做:

Total Revenue = SUM ( 'Table'[Unit Price] ) * SUM ( 'Table'[Quantity] )

相反,您必须使用显式

SUMX
迭代器中的行上下文来逐行求和:

Total Revenue = 
    SUMX ( 
        'Table' , 
        'Table'[Unit Price] * 'Table'[Quantity]
    ) 

0
投票

我不确定 SUM 只是列的简单求和的语法糖,或者 SUM ( 'Table'[Column] ) 是 SUMX ( 'Table' , ‘表’[列])。

根据我的经验,性能差异是:

参见https://maxpowerbi.pro/the-dax-summary-pattern/

这也是 Marco Russo 和 Alberto Ferrari 推荐的 https://www.daxpatterns.com/currency-conversion/

© www.soinside.com 2019 - 2024. All rights reserved.