mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 19:42:00 +00:00
0a4a5b36cc
* Additional .gitignore entries * Merge a bunch of small articles about system tables into single one * Merge a bunch of small articles about formats into single one * Adapt table with formats to English docs too * Add SPb meetup link to main page * Move Utilities out of top level of docs (the location is probably not yet final) + translate couple articles * Merge MacOS.md into build_osx.md * Move Data types higher in ToC * Publish changelog on website alongside documentation * Few fixes for en/table_engines/file.md * Use smaller header sizes in changelogs * Group up table engines inside ToC * Move table engines out of top level too * Specificy in ToC that query language is SQL based. Thats a bit excessive, but catches eye. * Move stuff that is part of query language into respective folder * Move table functions lower in ToC * Lost redirects.txt update * Do not rely on comments in yaml + fix few ru titles * Extract major parts of queries.md into separate articles * queries.md has been supposed to be removed * Fix weird translation * Fix a bunch of links * There is only table of contents left * "Query language" is actually part of SQL abbreviation * Change filename in README.md too * fix mistype
31 lines
1.8 KiB
Markdown
31 lines
1.8 KiB
Markdown
<a name="functions_arrayjoin"></a>
|
||
|
||
# Функция 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] │
|
||
└─────┴───────────┴─────────┘
|
||
```
|