SUMMARIZE DAX Function (Table manipulation)

Creates a summary of the input table grouped by the specified columns.

Syntax

SUMMARIZE ( <Table> [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, <GroupBy_ColumnName> [, [<Name>] [, [<Expression>] [, … ] ] ] ] ] ] ] )
Parameter Attributes Description
Table

The input table.

GroupBy_ColumnName Optional
Repeatable

A column to group by or a call to ROLLUP function to specify a list of columns to group by with subtotals.

Name
Not recommended
Deprecated
Optional
Repeatable

A column name to be added.

Expression
Row Context
Not recommended
Deprecated
Optional
Repeatable

The expression of the new column is executed in both a row context and a filter context.

Return values

Table An entire table or a table with one or more columns.

A table with the selected columns for the GroupBy_ColumnName arguments and the summarized columns designed by the name arguments.

Remarks

The GroupBy_ColumnName must be either in table or in a related table to Table.

SUMMARIZE should not be used to add columns. As an alternative, use SUMMARIZECOLUMNS or ADDCOLUMNS / SUMMARIZE.

SUMMARIZE does not preserve the data lineage of the columns used in ROLLUP or ROLLUPGROUP, raising an error if such columns are later used in the filter context.

» 7 related articles
» 4 related functions

Examples

--  SUMMARIZE groups its first argument by the set of columns 
--  provided in the next parameters.
--  The groupby columns can be any column of the expanded table.
EVALUATE
CALCULATETABLE (
    SUMMARIZE ( 
        Sales,
        'Product'[Brand],
        'Date'[Calendar Year]
    ),
    'Product'[Color] = "Silver Grey"
)

Brand Calendar Year
Contoso 2007-01-01
Fabrikam 2007-01-01
A. Datum 2007-01-01
Contoso 2008-01-01
Fabrikam 2008-01-01
A. Datum 2008-01-01
Contoso 2009-01-01
Fabrikam 2009-01-01
A. Datum 2009-01-01
--  SUMMARIZE can also create new columns like ADDCOLUMNS does
--  even though we strongly discourage using this feature due
--  to the complexity of the result in some scenarios.
--  Columns are computed in both a row and a filter context
--  filtering the currently iterated row.
EVALUATE
CALCULATETABLE (
    SUMMARIZE ( 
        Sales,
        'Product'[Brand],
        'Date'[Calendar Year],
        "Qty", SUM ( Sales[Quantity] ),
        "Brand & Year", 'Product'[Brand] & " - " & 'Date'[Calendar Year]
    ),
    'Product'[Color] = "Silver Grey"
)
Product[Brand] Date[Calendar Year] Qty Brand & Year
Contoso CY 2007 51 Contoso – CY 2007
Fabrikam CY 2007 64 Fabrikam – CY 2007
A. Datum CY 2007 173 A. Datum – CY 2007
Contoso CY 2008 96 Contoso – CY 2008
Fabrikam CY 2008 90 Fabrikam – CY 2008
A. Datum CY 2008 149 A. Datum – CY 2008
Contoso CY 2009 58 Contoso – CY 2009
Fabrikam CY 2009 121 Fabrikam – CY 2009
A. Datum CY 2009 157 A. Datum – CY 2009
--  SUMMARIZE can produce subtotals using the ROLLUP
--  function to group columns.
EVALUATE
CALCULATETABLE (
    SUMMARIZE (
        Sales,
        ROLLUP ( 'Product'[Brand], 'Date'[Calendar Year] ),
        "Amt", [Sales Amount]
    ),
    'Product'[Brand] IN { "Contoso", "Litware" },
    'Date'[Calendar Year] IN { "CY 2008", "CY 2007" }
)
Brand Calendar Year Amt
Contoso 2007-01-01 2,729,818.54
Litware 2007-01-01 647,385.82
Contoso 2008-01-01 2,369,167.68
Litware 2008-01-01 1,487,846.74
Contoso (Blank) 5,098,986.22
Litware (Blank) 2,135,232.56
(Blank) (Blank) 7,234,218.78
--  SUMMARIZE has the option of grouping by columns computed
--  in the query.
EVALUATE
SUMMARIZE (
    ADDCOLUMNS (
        Sales,
        "SalesType",
            IF ( Sales[Quantity] > 1, "Large", "Small" )
    ),
    [SalesType],
    "Amt", [Sales Amount]
)
SalesType Amt
Small 17,569,935.65
Large 13,021,408.33

Related articles

Learn more about SUMMARIZE in the following articles:

  • Best Practices Using SUMMARIZE and ADDCOLUMNS

    Everyone using DAX is probably used to SQL query language. Because of the similarities between the Tabular data modeling and the relational data modeling, there is the expectation that you can perform the same operations as those allowed in SQL. However, in its current implementation DAX does not permit all the operations that you can […] » Read more

  • All the secrets of SUMMARIZE

    SUMMARIZE is a function that looks quite simple, but its functionality hides some secrets that might surprise even seasoned DAX coders. In this article, we analyze the behavior of SUMMARIZE, in order to completely describe its semantic. The final advice might surprise you: we will suggest to avoid the use of SUMMARIZE in your code, […] » Read more

  • From SQL to DAX: Grouping Data

    The GROUP BY condition of a SQL statement is natively implemented by SUMMARIZE in DAX. This article shows how to use SUMMARIZE and an alternative syntax to group data. » Read more

  • From SQL to DAX: Projection

    This article describes projection functions and techniques in DAX, showing the differences between SELECTCOLUMNS, ADDCOLUMNS, and SUMMARIZE. » Read more

  • Using SELECTEDVALUE with Fields Parameters in Power BI

    If you try to use SELECTEDVALUE on the visible column of the table generated by the Fields Parameters feature in Power BI, you get the following error: Calculation error in measure ‘Sales'[Selection]: Column [Parameter] is part of composite key, but… » Read more

  • Differences between GROUPBY and SUMMARIZE

    Both GROUPBY and SUMMARIZE are useful functions to group by columns. However, they differ in both performance and functionalities. Knowing the details lets developers choose the right function for their specific scenario. » Read more

  • Understanding Group By Columns in Power BI

    This article describes how Power BI uses the Group By Columns attribute of a column and how you can leverage it in specific scenarios. » Read more

Related functions

Other related functions are:

Last update: Mar 13, 2024   » Contribute   » Show contributors

Contributors: Alberto Ferrari, Marco Russo, Antonio Ladrón de Guevara Agudo

Microsoft documentation: https://docs.microsoft.com/en-us/dax/summarize-function-dax

2018-2024 © SQLBI. All rights are reserved. Information coming from Microsoft documentation is property of Microsoft Corp. » Contact us   » Privacy Policy & Cookies

Context Transition

This function performs a Context Transition if called in a Row Context. Click to read more.

Row Context

This expression is executed in a Row Context. Click to read more.

Iterator

Not recommended

The use of this function is not recommended. See Remarks and Related functions for alternatives.

Not recommended

The use of this parameter is not recommended.

Deprecated

This function is deprecated. Jump to the Alternatives section to see the function to use.

Volatile

A volatile function may return a different result every time you call it, even if you provide the same arguments. Click to read more.

Deprecated

This parameter is deprecated and its use is not recommended.

DirectQuery compatibility

Limitations are placed on DAX expressions allowed in measures and calculated columns.
The state below shows the DirectQuery compatibility of the DAX function.

Contribute

Want to improve the content of SUMMARIZE? Did you find any issue?
Please, report it us! All submissions will be evaluated for possible updates of the content.


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.