活动
SUMMARIZE
返回一个摘要表,显示对一组函数的请求总数。
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
术语 | 定义 |
---|---|
table |
返回数据表的任何 DAX 表达式。 |
groupBy_ColumnName |
(可选)现有列的限定名称,用于基于在其中找到的 values 创建摘要组。 此参数不能是表达式。 |
name |
以双引号括起来的总 orsummarize 列的名称。 |
expression |
返回单个标量 value的任何 DAX 表达式,其中表达式将多次计算(对于每行/上下文)。 |
包含 groupBy_columnName
参数的选定列的表,and 名称参数设计的汇总列。
define 名称的每个列都必须具有相应的表达式;否则,将返回 error。 first 参数名称定义结果中的列的名称。 second 参数表达式定义为获取该列中每一行的 value 而执行的计算。
groupBy_columnName必须位于 related 表中的
table
or 中才能table
。每个名称都必须用双引号引起来。
该函数通过一组 or 更多groupBy_columnName列的 values 将所选行分组到一组摘要行中。 为每个组返回一行。
在计算列 or 行级别安全性 (RLS) 规则中使用时,not 支持在 DirectQuery 模式下使用此函数。
以下示例返回按 calendaryearandproduct 类别名称分组的经销商销售摘要,此结果表允许通过 yearandproduct 类别对经销商销售进行分析。
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
下表显示了数据预览,因为希望接收表的任何函数都会 received 数据:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|
2008 | Bikes | 12968255.42 | 36167.6592 |
2005 | Bikes | 6958251.043 | 4231.1621 |
2006 | Bikes | 18901351.08 | 178175.8399 |
2007 | Bikes | 24256817.5 | 276065.992 |
2008 | 组件 | 2008052.706 | 39.9266 |
2005 | 组件 | 574256.9865 | 0 |
2006 | 组件 | 3428213.05 | 948.7674 |
2007 | 组件 | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Accessories | 153299.924 | 865.5945 |
2005 | Accessories | 18594.4782 | 4.293 |
2006 | Accessories | 86612.7463 | 1061.4872 |
2007 | Accessories | 275794.8403 | 4756.6546 |
添加 ROLLUP 语法通过向groupBy_columnName列的结果添加 rollup 行来修改 SUMMARIZE 函数的行为。 ROLLUP 只能在 SUMMARIZE 表达式中使用。
以下示例将 rollup 行添加到 SUMMARIZE 函数调用的 Group-By 列:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
返回下表,
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|
2008 | Bikes | 12968255.42 | 36167.6592 |
2005 | Bikes | 6958251.043 | 4231.1621 |
2006 | Bikes | 18901351.08 | 178175.8399 |
2007 | Bikes | 24256817.5 | 276065.992 |
2008 | 组件 | 2008052.706 | 39.9266 |
2005 | 组件 | 574256.9865 | 0 |
2006 | 组件 | 3428213.05 | 948.7674 |
2007 | 组件 | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Accessories | 153299.924 | 865.5945 |
2005 | Accessories | 18594.4782 | 4.293 |
2006 | Accessories | 86612.7463 | 1061.4872 |
2007 | Accessories | 275794.8403 | 4756.6546 |
2008 | 15496115.89 | 41224.3038 | |
2005 | 7582953.67 | 4326.4144 | |
2006 | 22871907.85 | 184419.1335 | |
2007 | 30543780.84 | 297538.0745 | |
76494758.25 | 527507.9262 |
在 ROLLUP 语法中添加 ROLLUPGROUP 可用于防止 rollup 行中的部分分类汇总。 ROLLUPGROUP 只能在 ROLLUP、ROLLUPADDISSUBTOTALorROLLUPISSUBTOTAL 表达式中使用。
以下示例仅显示总 all 年 and 类别的总和,而没有每个类别 year 的分类汇总,其中包含 all 类别:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
返回下表,
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|
2008 | Bikes | 12968255.42 | 36167.6592 |
2005 | Bikes | 6958251.043 | 4231.1621 |
2006 | Bikes | 18901351.08 | 178175.8399 |
2007 | Bikes | 24256817.5 | 276065.992 |
2008 | 组件 | 2008052.706 | 39.9266 |
2005 | 组件 | 574256.9865 | 0 |
2006 | 组件 | 3428213.05 | 948.7674 |
2007 | 组件 | 5195315.216 | 4226.0444 |
2008 | Clothing | 366507.844 | 4151.1235 |
2005 | Clothing | 31851.1628 | 90.9593 |
2006 | Clothing | 455730.9729 | 4233.039 |
2007 | Clothing | 815853.2868 | 12489.3835 |
2008 | Accessories | 153299.924 | 865.5945 |
2005 | Accessories | 18594.4782 | 4.293 |
2006 | Accessories | 86612.7463 | 1061.4872 |
2007 | Accessories | 275794.8403 | 4756.6546 |
76494758.25 | 527507.9262 |
使用 ISSUBTOTAL,可以在 SUMMARIZE 表达式中创建另一列,该表达式返回 Trueif 列 contains 小计 values 作为参数的列 ISSUBTOTAL,否则返回 False。 ISSUBTOTAL 只能在 SUMMARIZE 表达式中使用。
以下 sample 为给定 SUMMARIZE 函数调用中的每个 ROLLUP 列生成 ISSUBTOTAL 列:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
, "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
, "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)
返回下表,
[Is Sub Total for DateTimeCalendarYear] | [Is Sub Total for ProductCategoryName] | DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Sales Amount (USD)] | [Discount Amount (USD)] |
---|---|---|---|---|---|
FALSE |
FALSE |
||||
FALSE |
FALSE |
2008 | Bikes | 12968255.42 | 36167.6592 |
FALSE |
FALSE |
2005 | Bikes | 6958251.043 | 4231.1621 |
FALSE |
FALSE |
2006 | Bikes | 18901351.08 | 178175.8399 |
FALSE |
FALSE |
2007 | Bikes | 24256817.5 | 276065.992 |
FALSE |
FALSE |
2008 | 组件 | 2008052.706 | 39.9266 |
FALSE |
FALSE |
2005 | 组件 | 574256.9865 | 0 |
FALSE |
FALSE |
2006 | 组件 | 3428213.05 | 948.7674 |
FALSE |
FALSE |
2007 | 组件 | 5195315.216 | 4226.0444 |
FALSE |
FALSE |
2008 | Clothing | 366507.844 | 4151.1235 |
FALSE |
FALSE |
2005 | Clothing | 31851.1628 | 90.9593 |
FALSE |
FALSE |
2006 | Clothing | 455730.9729 | 4233.039 |
FALSE |
FALSE |
2007 | Clothing | 815853.2868 | 12489.3835 |
FALSE |
FALSE |
2008 | Accessories | 153299.924 | 865.5945 |
FALSE |
FALSE |
2005 | Accessories | 18594.4782 | 4.293 |
FALSE |
FALSE |
2006 | Accessories | 86612.7463 | 1061.4872 |
FALSE |
FALSE |
2007 | Accessories | 275794.8403 | 4756.6546 |
FALSE |
TRUE |
||||
FALSE |
TRUE |
2008 | 15496115.89 | 41224.3038 | |
FALSE |
TRUE |
2005 | 7582953.67 | 4326.4144 | |
FALSE |
TRUE |
2006 | 22871907.85 | 184419.1335 | |
FALSE |
TRUE |
2007 | 30543780.84 | 297538.0745 | |
TRUE |
TRUE |
76494758.25 | 527507.9262 |