> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> UNION句のドキュメント

# UNION句

`UNION` は、`UNION ALL` または `UNION DISTINCT` を明示的に指定して使用できます。

`ALL` または `DISTINCT` を指定しない場合の動作は、`union_default_mode` 設定に依存します。`UNION ALL` と `UNION DISTINCT` の違いは、`UNION DISTINCT` では結合結果に対して重複排除が行われる点です。これは、`UNION ALL` を含むサブクエリに対して `SELECT DISTINCT` を実行するのと同等です。

`UNION` を使用すると、結果を連結して任意の数の `SELECT` クエリを結合できます。例:

```sql title="Query" theme={null}
SELECT CounterID, 1 AS table, toInt64(count()) AS c
    FROM test.hits
    GROUP BY CounterID

UNION ALL

SELECT CounterID, 2 AS table, sum(Sign) AS c
    FROM test.visits
    GROUP BY CounterID
    HAVING c > 0
```

結果のカラムは、その索引 (`SELECT` 内での順序) に基づいて対応付けられます。カラム名が一致しない場合、最終結果のカラム名は最初のクエリから取得されます。

ユニオンでは型変換が行われます。たとえば、結合する 2 つのクエリに、互換性のある型で、同じフィールドが一方では非 `Nullable` 型、もう一方では `Nullable` 型として含まれている場合、結果の `UNION` ではそのフィールドは `Nullable` 型になります。

`UNION` を構成するクエリは `()` で囲むことができます。[ORDER BY](/ja/reference/statements/select/order-by) と [LIMIT](/ja/reference/statements/select/limit) は最終結果ではなく、それぞれのクエリに適用されます。最終結果に変換を適用する必要がある場合は、`UNION` を含むすべてのクエリを [FROM](/ja/reference/statements/select/from) 句のサブクエリに入れることができます。

`UNION ALL` または `UNION DISTINCT` を明示的に指定せずに `UNION` を使用する場合は、[union\_default\_mode](/ja/reference/settings/session-settings#union_default_mode) 設定を使ってユニオンモードを指定できます。設定値には `ALL`、`DISTINCT`、または空文字列を指定できます。ただし、`union_default_mode` 設定が空文字列の状態で `UNION` を使用すると、例外が発生します。以下の例は、設定値ごとのクエリ結果を示しています。

```sql title="Query" theme={null}
SET union_default_mode = 'DISTINCT';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
```

```text title="Response" theme={null}
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
```

```sql title="Query" theme={null}
SET union_default_mode = 'ALL';
SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 2;
```

```text title="Response" theme={null}
┌─1─┐
│ 1 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 2 │
└───┘
┌─1─┐
│ 3 │
└───┘
```

`UNION/UNION ALL/UNION DISTINCT` を構成するクエリは同時に実行される場合があり、その結果は混在することがあります。

**関連項目**

* [insert\_null\_as\_default](/ja/reference/settings/session-settings#insert_null_as_default) 設定。
* [union\_default\_mode](/ja/reference/settings/session-settings#union_default_mode) 設定。
