for the last year I replied 3 times with a silly snippet:
```
SELECT
    [2, 3, 4] AS x,
    pow(2, arraySum(i -> log2(i), x)) AS arrayProduct
┌─x───────┬─arrayProduct─┐
│ [2,3,4] │           24 │
└─────────┴──────────────┘
```

I think we need a function to multiply elements of an array.
}
            size_t count = 1;
            s = data[pos]; 
            ++pos;
            for (; pos < offsets[i]; ++pos)
            {
                auto element = data[pos];
                if constexpr (aggregate_operation == AggregateOperation::sum ||
                            aggregate_operation == AggregateOperation::average)
                {
                    s += element;
                }
                else if constexpr (aggregate_operation == AggregateOperation::min)
                {
                    if (element < s)
                    {
                        s = element;
                    }
                }
                else if constexpr (aggregate_operation == AggregateOperation::max)
                {
                    if (element > s)
                    {
                        s = element;
                    }
                }
                ++count;
            }
            if constexpr (aggregate_operation == AggregateOperation::average)
            {