# `Ash.Query.Combination`
[🔗](https://github.com/ash-project/ash/blob/v3.23.1/lib/ash/query/combination.ex#L5)

Represents one combination in a combination of queries.

# `t`

```elixir
@type t() :: %Ash.Query.Combination{
  calculations: %{required(atom()) =&gt; Ash.Query.Calculation.t()},
  filter: Ash.Expr.t(),
  limit: pos_integer() | nil,
  offset: pos_integer() | nil,
  select: [atom()],
  sort: Ash.Sort.t(),
  type: :base | :union | :union_all | :except | :intersect
}
```

# `base`

The initial combination of a combined query.

# `except`

Removes all rows that are present in the previous combinations *and* this one.

# `intersect`

Intersects the query with the previous combinations, keeping only rows that are present in the previous combinations and this one.

# `union`

Unions the query with the previous combinations, discarding duplicates when all fields are equal.

# `union_all`

Unions the query with the previous combinations, keeping all rows.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
