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.

» 4 related articles
» 1 related function

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"
)
Brand Calendar Year Qty Brand & Year
Contoso 2007-01-01 51 2007-01-01
Fabrikam 2007-01-01 64 2007-01-01
A. Datum 2007-01-01 173 2007-01-01
Contoso 2008-01-01 96 2008-01-01
Fabrikam 2008-01-01 90 2008-01-01
A. Datum 2008-01-01 149 2008-01-01
Contoso 2009-01-01 58 2009-01-01
Fabrikam 2009-01-01 121 2009-01-01
A. Datum 2009-01-01 157 2009-01-01
--  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

Related functions

Other related functions are:

Last update: Jul 24, 2021   » Contribute   » Show contributors

Contributors: Alberto Ferrari, Marco Russo

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

2018-2021 © 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.

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.