DAX函数——解析SUM()与SUMX()区别及实例应用

首先让我们分别了解一下SUM和SUMX的用法及含义:

SUM 函数解释:

官方描述:对某个列中的所有数值求和。

详细解说:SUM是一个标准的常用的聚合函数。使用SUM对某列进行汇总求和,这里的某列通常是指可计算的度量值列。SUM不对String类型进行转换汇总。

SUM 语法:

SUM(<column>)

SUM 示例

以下示例从表 Sales 中添加了列 Amt 中包含的所有数字。

=SUM(Sales[Amt])

--------------------------------------------------------------------------------------------------------------------------------------

SUMX 函数解释:

官方描述:返回为表中的每一行计算的表达式的和。

详细解说:这里面需要重点理解的是每一行,例:我们已知销售数量和销售单价这两列,需要求销售总额。但数据含多个维度并且日期粒度到天。那我们就不能直接  销售总额=SUM(销售数量)*SUM(销售单价).当遇到这种情况时,我们就可以使用SUMX。SUMX销售表,销售数量*销售单价

SUMX 语法:

SUMX(<table>, <expression>)

SUMX 示例

下面的示例首先对表达式 ShippingTerritoryID = 5 上的表 InternetSales 进行筛选,并返回列 Freight 中所有值的总和。 换言之,此表达式仅返回指定销售区域的货运费用总和。

=SUMX(FILTER(InternetSales, InternetSales[SalesTerritoryID]=5),[Freight])

备注

SUMX 函数将表或返回表的表达式作为其第一个参数。 第二个参数是包含要计算总和的数字的列,或计算结果为列的表达式。

仅对列中的数字进行计数。 空白、逻辑值和文本会被忽略。

 

重点来了,两者之间有什么区别呢?

  1. SUM是列级别聚合函数(不逐行计算),SUMX是行级别聚合函数(逐行计算)
  2. 性能差别,这点另一个博主写的更详细一点,我把链接贴在下方。

    https://www.cnblogs.com/yeacer/p/10002131.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值