mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 21:51:57 +00:00
31 lines
1.2 KiB
ReStructuredText
31 lines
1.2 KiB
ReStructuredText
arrayJoin function
|
|
---------------
|
|
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:
|
|
|
|
.. 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] │
|
|
└─────┴───────────┴─────────┘
|