mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-02 20:42:04 +00:00
4a24d4f3ad
* Initial commit if EN docs * Part of EN documentation * Full queries section * External data * Table engines * System tables * Table functions * Formats * Data types * Operators * Functions * Dictionaries * Settings * Configuration files * Access rights * Quotas * Fixed few formatting errors * Fixed few formatting errors * Fixed few formatting errors * FIX: "WARNING: Title underline too short." during build RU docs. * FIX: "WARNING: Title underline too short." during build RU docs.
32 lines
1.9 KiB
ReStructuredText
32 lines
1.9 KiB
ReStructuredText
Функция arrayJoin
|
||
-----------------
|
||
Это совсем необычная функция.
|
||
|
||
Обычные функции не изменяют множество строк, а лишь изменяют значения в каждой строке (map).
|
||
Агрегатные функции выполняют свёртку множества строк (fold, reduce).
|
||
Функция arrayJoin выполняет размножение каждой строки в множество строк (unfold).
|
||
|
||
Функция принимает в качестве аргумента массив, и размножает исходную строку в несколько строк - по числу элементов массива.
|
||
Все значения в столбцах просто копируются, кроме значения в столбце с применением этой функции - он заменяется на соответствующее значение массива.
|
||
|
||
В запросе может быть использовано несколько функций ``arrayJoin``. В этом случае, соответствующее преобразование делается несколько раз.
|
||
|
||
Обратите внимание на синтаксис ARRAY JOIN в запросе SELECT, который предоставляет более широкие возможности.
|
||
|
||
Пример:
|
||
|
||
.. code-block:: sql
|
||
|
||
:) SELECT arrayJoin([1, 2, 3] AS src) AS dst, 'Hello', src
|
||
|
||
SELECT
|
||
arrayJoin([1, 2, 3] AS src) AS dst,
|
||
'Hello',
|
||
src
|
||
|
||
┌─dst─┬─\'Hello\'─┬─src─────┐
|
||
│ 1 │ Hello │ [1,2,3] │
|
||
│ 2 │ Hello │ [1,2,3] │
|
||
│ 3 │ Hello │ [1,2,3] │
|
||
└─────┴───────────┴─────────┘
|