UNION DAX Function (Table manipulation)

Returns the union of the tables whose columns match.

Syntax

UNION ( <Table>, <Table> [, <Table> [, … ] ] )
Parameter Attributes Description
Table Repeatable

A table that will participate in the union.

Return values

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

A table that contains all the rows from each of the table expressions.

Remarks

The tables must have the same number of columns.

Columns are combined by position in their respective tables.

The column names in the return table will match the column names in the first Table.

Duplicate rows are retained.

The returned table has lineage where possible. For example, if the first column of each Table has lineage to the same base column C1 in the model, the first column in the UNION result will have lineage to C1. However, if combined columns have lineage to different base columns, or if there is an extension column, the resulting column in UNION will have no lineage.

When data types differ, the resulting data type is determined based on the rules for data type coercion.

The returned table will not contain columns from related tables. Therefore, when the result corresponds to a base table, once applied to the filter context it does not involve the expanded table and it only filters columns of he base table.

» 5 related articles
» 2 related functions

Examples

--  UNION performs set addition: the second parameter rows 
--  are added to the first, keeping duplicates
EVALUATE 
VAR Days        = VALUES ( 'Date'[Day of Week] )
VAR WeekendDays = { "Saturday", "Sunday" }
VAR UnionDays   = UNION ( Days, WeekendDays )
RETURN 
    UnionDays
Day of Week
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
--  UNION keeps the data lineage only if all its arguments share
--  the same data lineage
DEFINE
VAR Days        = VALUES ( 'Date'[Day of Week] )
VAR WeekendDays = { "Saturday", "Sunday" }
VAR UnionDays   = UNION ( Days, WeekendDays )

EVALUATE
    ADDCOLUMNS ( 
        Days,
        "Sales Amount", [Sales Amount] 
    )
    
EVALUATE
    ADDCOLUMNS ( 
        UnionDays,
        "Sales Amount", [Sales Amount] 
    )
Day of Week Sales Amount
Saturday 4,332,879.26
Sunday 4,255,613.01
Monday 4,251,342.00
Tuesday 4,643,891.92
Wednesday 4,021,583.39
Thursday 4,653,030.30
Friday 4,433,004.10
Day of Week Sales Amount
Saturday 30,591,343.98
Sunday 30,591,343.98
Monday 30,591,343.98
Tuesday 30,591,343.98
Wednesday 30,591,343.98
Thursday 30,591,343.98
Friday 30,591,343.98
Saturday 30,591,343.98
Sunday 30,591,343.98

The arguments of UNION must have the same number of columns.
The following query throws an error: Date contains more columns than WeekendDays.

EVALUATE 
VAR Days        = Date
VAR WeekendDays = { "Saturday", "Sunday" }
VAR UnionDays   = UNION ( Days, WeekendDays )
RETURN 
    ADDCOLUMNS ( 
        UnionDays,
        "Sales Amount", [Sales Amount] 
    )

Related articles

Learn more about UNION in the following articles:

Related functions

Other related functions are:

Last update: Apr 11, 2024   » Contribute   » Show contributors

Contributors: Alberto Ferrari, Marco Russo

Microsoft documentation: https://docs.microsoft.com/en-us/dax/union-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 UNION? 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.