groupArrayInsertAt

    语法

    如果在一个查询中将多个值插入到同一位置,则该函数的行为方式如下:

    • 如果在单个线程中执行查询,则使用第一个插入的值。
    • 如果在多个线程中执行查询,则结果值是未确定的插入值之一。

    参数

    • — 要插入的值。生成所支持的数据类型(数据)的。
    • pos — 指定元素 x 将被插入的位置。 数组中的索引编号从零开始。 UInt32.
    • default_x — 在空位置替换的默认值。可选参数。生成 x 数据类型 (数据) 的。 如果 default_x 未定义,则 默认值 被使用。

    返回值

    • 具有插入值的数组。

    示例

    查询:

    1. SELECT groupArrayInsertAt(toString(number), number * 2) FROM numbers(5);

    结果:

    1. ┌─groupArrayInsertAt(toString(number), multiply(number, 2))─┐
    2. ['0','','1','','2','','3','','4']
    3. └───────────────────────────────────────────────────────────┘

    查询:

    1. ['0','-','1','-','2','-','3','-','4']

    查询:

    1. SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);

    结果:

    在一个位置多线程插入数据。

    查询:

    1. SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;
    1. ┌─groupArrayInsertAt(number, 0)─┐
    2. └───────────────────────────────┘