本帖最后由 XF 于 2021-2-22 10:59 编辑
SUMMARIZE 是 DAX 中最常用的函数之一。它扫描作为第一参数的表,使用表中的列或对应的扩展表中的一列或多列执行分组。
语法
- SUMMARIZE ( <表>, <分组列>, [<分组列>], [ [<列名 1>, <表达式 1>],[<列名 2>, <表达式 2>] … ] )
复制代码
参数 | 属性 | 描述 | 表 | | 表或返回表的 DAX 表达式 | 分组列 | 可重复 | 用于分组的列,不能使用表达式。可以被 ROLLUP 函数调用以计算小计 | 列名 | 可选
可重复
不推荐 | 派生列的列名 | 表达式 | 可选
可重复
不推荐 | 派生列使用的表达式,同时在行上下文和筛选上下文中计值。 |
返回值
表 整个表或具有一列或多列的表
包含分组列参数所指定的列,以及新建的派生列。
备注
分组列必须是第一参数表中的列,或者是其扩展表中的列。
使用 SUMMARIZE 对表进行分组是一个安全的操作,但不建议使用 SUMMARIZE 添加列。当需要新增列时,可以使用 SUMMARIZECOLUMNS 或 ADDCOLUMNS + SUMMARIZE 的方案。
每个列名都必须具有一个对应的表达式;否则将返回错误。 <列名>定义结果中新列的名称,需使用双引号括起来。 <表达式>定义了为新列的每一行计值的表达式。
示例
- ---- 推荐用法,执行分组 ----
- SUMMARIZE (
- Sales,
- 'Product'[Product Name],
- 'Date'[Date]
- )
- ---- 不推荐新建派生列 ----
- SUMMARIZE (
- Sales,
- 'Product'[Product Name],
- 'Date'[Date],
- "销售数量", SUM ( Sales[Quantity] ) //不推荐
- )
复制代码- ---- 为分组列添加小计 ----
- SUMMARIZE (
- Sales,
- ROLLUP ( 'Product'[Category], 'Date'[Calendar Year] ),
- "Sales", [Sales Amount]
- )
复制代码
深入了解 SUMMARIZE 函数:
理解 SUMMARIZE
SUMMARIZE用于生成数据汇总表,按一列或多列对数据进行分组,并且可以使用指定的表达式为汇总后的表添加新列。SUMMARIZE是最常用的函数之一,但随着新函数的出现,它的适用范围相比最初已经大大缩小,出于性能考虑,建议你阅读本文后谨慎的使用SUMMARIZE。
|