ClickHouse/docs/ru/sql-reference/functions/array-join.md

35 lines
1.8 KiB
Markdown
Raw Normal View History

---
toc_priority: 61
toc_title: "Функция ArrayJoin"
---
# Функция ArrayJoin {#functions_arrayjoin}
Это совсем необычная функция.
Обычные функции не изменяют множество строк, а лишь изменяют значения в каждой строке (map).
Агрегатные функции выполняют свёртку множества строк (fold, reduce).
Функция arrayJoin выполняет размножение каждой строки в множество строк (unfold).
Функция принимает в качестве аргумента массив, и размножает исходную строку в несколько строк - по числу элементов массива.
Все значения в столбцах просто копируются, кроме значения в столбце с применением этой функции - он заменяется на соответствующее значение массива.
В запросе может быть использовано несколько функций `arrayJoin`. В этом случае, соответствующее преобразование делается несколько раз.
Обратите внимание на синтаксис ARRAY JOIN в запросе SELECT, который предоставляет более широкие возможности.
Пример:
``` sql
SELECT arrayJoin([1, 2, 3] AS src) AS dst, 'Hello', src
```
``` text
┌─dst─┬─\'Hello\'─┬─src─────┐
│ 1 │ Hello │ [1,2,3] │
│ 2 │ Hello │ [1,2,3] │
│ 3 │ Hello │ [1,2,3] │
└─────┴───────────┴─────────┘
```