**How to reproduce**
Clickhouse version 20.11.5.18, 20.8.7.15, 20.3.19
```
SELECT
    groupUniqArray(val) AS uniq,
    toTypeName(uniq),
    groupArray(val) AS arr,
    toTypeName(arr)
FROM
(
    SELECT CAST(number % 2, 'Enum(\'hello\' = 1, \'world\' = 0)') AS val
    FROM numbers(2)
)

Query id: d4657f27-c8bd-4174-9947-c6c48d0222d5

┌─uniq──┬─toTypeName(groupUniqArray(val))─┬─arr───────────────┬─toTypeName(groupArray(val))────────────┐
│ [0,1] │ Array(Int8)                     │ ['world','hello'] │ Array(Enum8('world' = 0, 'hello' = 1)) │
└───────┴─────────────────────────────────┴───────────────────┴────────────────────────────────────────┘
```

if (b.total_values <= max_elems)
            {
                for (size_t i = 0; i < b.value.size(); ++i)
                    insert(a, b.value[i], arena);
            }
            else if (a.total_values <= max_elems)
            {
                decltype(a.value) from;
                from.swap(a.value, arena);
                a.value.assign(b.value.begin(), b.value.end(), arena);
                a.total_values = b.total_values;
                for (size_t i = 0; i < from.size(); ++i)
                    insert(a, from[i], arena);
            }
            else
            {
                a.randomShuffle();
                a.total_values += b.total_values;
                for (size_t i = 0; i < max_elems; ++i)
                {
                    UInt64 rnd = a.genRandom(a.total_values);
                    if (rnd < b.total_values)
                        a.value[i] = b.value[i];
                }
            }
        }
        
        
    }
    void serialize(ConstAggregateDataPtr place, WriteBuffer & buf) const override