### Description

![image](https://github.com/elastic/elasticsearch/assets/76245/d0443170-0419-4759-b505-7620ff3d6594)

The execution time of grouping stats by multiple keywords has increased: 1.2 to 1.6 seconds (with doc_partitioning), 4.3 to 6.7 seconds (with shard_partitioning). The equivalent query with the _search API takes 1.8 seconds.

`from nyc_taxis | ... | stats c = count(dropoff_datetime) by trip_type, payment_type, vendor_id`

This regression occurred since July 2, 2023, and I suspect it may be due to the PR: [Support multivalued fields on arbitrary grouping](https://github.com/elastic/elasticsearch-internal/pull/1340).

/cc @nik9000
x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/operator/MultivalueDedupeTests.java
case LONG -> assertThat(toDecode[i].length, equalTo(Long.BYTES));
                    case DOUBLE -> assertThat(toDecode[i].length, equalTo(Double.BYTES));
                    case BOOLEAN -> assertThat(toDecode[i].length, equalTo(1));
                    case BYTES_REF -> {
                        
                    }
                    default -> fail("unsupported type");
                }
            }
        }
        BatchEncoder.decoder(elementType).decode(builder, i -> toDecode[i].length == 0, toDecode, toDecode.length);
        for (int i = 0; i < toDecode.length; i++) {
            assertThat(toDecode[i].length, equalTo(0));
        }
        Block decoded = builder.build();
        assertThat(decoded.getPositionCount(), equalTo(toDecode.length));
        List<Object> actual = new ArrayList<>();
        BasicBlockTests.valuesAtPositions(decoded, 0, decoded.getPositionCount())
            .stream()
            .forEach(l -> actual.add(l == null ? null : l.get(0)));
        Collections.sort(actual, Comparator.comparing(o -> {
            @SuppressWarnings("unchecked") 
            var c = (Comparable<Object>) o;
            return c;
        })); 
        assertThat(actual, equalTo(expected));
        return valueOffset;
    }
}