SUMMARIZE
傳回對群組集合進行所要求總計的摘要資料表。
語法
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
參數
詞彙 | [定義] |
---|---|
table | 傳回資料表的所有 DAX 運算式。 |
groupBy_ColumnName | (選擇性) 現有資料行的完整名稱,此資料行要用來根據在其中找到的值建立摘要群組。 此參數不能是運算式。 |
NAME | 提供給總計或摘要資料行的名稱,以雙引號括住。 |
expression | 傳回單一純量值的所有 DAX 運算式,其中運算式會 (針對每個資料列/內容) 多次評估。 |
傳回值
資料表,其包含針對 groupBy_columnName 引數選取的資料行,以及 name 引數所指定的摘要資料行。
備註
您定義名稱的每個資料行都必須有相對應運算式;否則會傳回錯誤。 第一個引數 name 會定義結果中的資料行名稱。 第二個引數 expression 會定義為了取得該資料行中每個資料列的值而執行的計算。
groupBy_columnName 必須在 table 或 table 的相關資料表中。
每個名稱都必須以雙引號括住。
此函式會依一或多個 groupBy_columnName 資料行的值,將一組選取的資料列分組為一組摘要資料列。 每個群組會傳回一個資料列。
在計算結果欄或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
範例
下列範例會傳回依日曆年度和產品類別名稱分組的轉銷商銷售摘要,此結果資料表可讓您依年份和產品類別對轉銷商銷售進行分析。
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
下表顯示任何預期接收資料表的函式,其會顯示資料的預覽:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [銷售金額 (美金)] | [折扣金額 (美金)] |
---|---|---|---|
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 | 配件 | 153299.924 | 865.5945 |
2005 | 配件 | 18594.4782 | 4.293 |
2006 | 配件 | 86612.7463 | 1061.4872 |
2007 | 配件 | 275794.8403 | 4756.6546 |
使用 ROLLUP
新增 ROLLUP 語法會藉由將彙總資料列新增至 groupBy_columnName 資料行的結果,以修改 SUMMARIZE 函式的行為。 ROLLUP 只能用在 SUMMARIZE 運算式內。
範例
下列範例會將彙總資料列新增至 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] | [銷售金額 (美金)] | [折扣金額 (美金)] |
---|---|---|---|
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 | 配件 | 153299.924 | 865.5945 |
2005 | 配件 | 18594.4782 | 4.293 |
2006 | 配件 | 86612.7463 | 1061.4872 |
2007 | 配件 | 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 |
使用 ROLLUPGROUP
在 ROLLUP 語法中新增 ROLLUPGROUP 可用來避免彙總資料列中的部分小計。 ROLLUPGROUP 只能在 ROLLUP、ROLLUPADDISSUBTOTAL 或 ROLLUPISSUBTOTAL 運算式內使用。
範例
下列範例只會顯示所有年份和類別的總計,而不含所有類別的每年小計:
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] | [銷售金額 (美金)] | [折扣金額 (美金)] |
---|---|---|---|
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 | 配件 | 153299.924 | 865.5945 |
2005 | 配件 | 18594.4782 | 4.293 |
2006 | 配件 | 86612.7463 | 1061.4872 |
2007 | 配件 | 275794.8403 | 4756.6546 |
76494758.25 | 527507.9262 |
使用 ISSUBTOTAL
使用 ISSUBTOTAL,您可以在 SUMMARIZE 運算式中建立另一個資料行。如果資料列包含指定為 ISSUBTOTAL 引數的資料行小計值,則會傳回 True;否則會傳回 False。 ISSUBTOTAL 只能用在 SUMMARIZE 運算式內。
範例
下列範例會針對指定 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])
)
傳回下列資料表,
[為 DateTimeCalendarYear 的小計] | [為 ProductCategoryName 的小計] | DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [銷售金額 (美金)] | [折扣金額 (美金)] |
---|---|---|---|---|---|
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 | 配件 | 153299.924 | 865.5945 |
FALSE | FALSE | 2005 | 配件 | 18594.4782 | 4.293 |
FALSE | FALSE | 2006 | 配件 | 86612.7463 | 1061.4872 |
FALSE | FALSE | 2007 | 配件 | 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 |