mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-01 03:52:15 +00:00
d91c97d15d
* Replace underscores with hyphens * remove temporary code * fix style check * fix collapse
36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
---
|
||
toc_priority: 61
|
||
toc_title: arrayJoin
|
||
---
|
||
|
||
# arrayJoin function {#functions_arrayjoin}
|
||
|
||
This is a very unusual function.
|
||
|
||
Normal functions don’t change a set of rows, but just change the values in each row (map).
|
||
Aggregate functions compress a set of rows (fold or reduce).
|
||
The ‘arrayJoin’ function takes each row and generates a set of rows (unfold).
|
||
|
||
This function takes an array as an argument, and propagates the source row to multiple rows for the number of elements in the array.
|
||
All the values in columns are simply copied, except the values in the column where this function is applied; it is replaced with the corresponding array value.
|
||
|
||
A query can use multiple `arrayJoin` functions. In this case, the transformation is performed multiple times.
|
||
|
||
Note the ARRAY JOIN syntax in the SELECT query, which provides broader possibilities.
|
||
|
||
Example:
|
||
|
||
``` 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] │
|
||
└─────┴───────────┴─────────┘
|
||
```
|
||
|
||
[Original article](https://clickhouse.tech/docs/en/query_language/functions/array_join/) <!--hide-->
|