```sql
cat s1.sql
drop table if exists temp2;

CREATE TABLE temp2
(
    `u` Date,
    `c` String,
    `p` UInt32
)
ENGINE = Log as
select * from (
 select '2022-08-01' u ,'A',202208 from numbers(300000)
union all select '2022-08-02','A',202208 from numbers(300000)
union all select '2022-08-03','A',202208 from numbers(300000)
union all select '2022-08-04','A',202208 from numbers(300000)
union all select '2022-08-05','A',202208 from numbers(300000)
union all select '2022-08-06','A',202208 from numbers(300000)
union all select '2022-08-07','A',202208 from numbers(300000)
union all select '2022-08-08','A',202208 from numbers(300000)
union all select '2022-08-09','A',202208 from numbers(300000)
union all select '2022-08-10','A',202208 from numbers(300000)
union all select '2022-08-11','A',202208 from numbers(300000)
union all select '2022-08-12','A',202208 from numbers(300000)
union all select '2022-08-13','A',202208 from numbers(300000)
union all select '2022-08-14','A',202208 from numbers(300000)
union all select '2022-08-15','A',202208 from numbers(300000)
union all select '2022-08-16','A',202208 from numbers(300000)
union all select '2022-08-17','A',202208 from numbers(300000)
union all select '2022-08-18','A',202208 from numbers(300000)
union all select '2022-08-19','A',202208 from numbers(300000)
union all select '2022-08-20','A',202208 from numbers(300000)
union all select '2022-08-21','A',202208 from numbers(300000)
union all select '2022-08-22','A',202208 from numbers(300000)
union all select '2022-08-23','A',202208 from numbers(300000)
union all select '2022-08-24','A',202208 from numbers(300000)
union all select '2022-08-25','A',202208 from numbers(300000)
union all select '2022-08-26','A',202208 from numbers(300000)
union all select '2022-08-27','A',202208 from numbers(300000)
union all select '2022-08-28','A',202208 from numbers(300000)
union all select '2022-08-29','A',202208 from numbers(300000)
union all select '2022-08-30','A',202208 from numbers(67584)
union all select '2022-08-31','A',202208 from numbers(408)
) order by rand();


------------------------------------------------------------
cat s2.sql

WITH tenants AS
    (
        SELECT p
        FROM temp2 AS s
        LEFT JOIN
        (
            SELECT 'A' AS c
            FROM temp2 AS t
            WHERE u >= today()
            LIMIT 1
        ) AS min_date ON min_date.c = s.c
        GROUP BY s.p
    )
SELECT *
FROM tenants
WHERE 0
UNION ALL
SELECT p
FROM tenants
GROUP BY p
SETTINGS max_threads = 10
format PrettyCompact
```

```
# expected result

clickhouse-client  -mn <s1.sql; curl 'http://localhost:8123/?max_bytes_before_external_group_by=0' --data-binary @s2.sql
┌──────p─┐
│ 202208 │   
└────────┘

#  not expected result

clickhouse-client  -mn <s1.sql; curl 'http://localhost:8123/?max_bytes_before_external_group_by=700000000' --data-binary @s2.sql
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌──────p─┐
│ 202208 │
└────────┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
┌─p─┐
└───┘
```
{
        AggregatedDataVariantsPtr & first = data->at(0);
        shared_data = std::make_shared<ConvertingAggregatedToChunksSource::SharedData>();
        for (size_t thread = 0; thread < num_threads; ++thread)
        {
            
            Arena * arena = first->aggregates_pools.at(thread).get();
            auto source = std::make_shared<ConvertingAggregatedToChunksSource>(params, data, shared_data, arena);
            processors.emplace_back(std::move(source));
        }
    }
};
AggregatingTransform::AggregatingTransform(Block header, AggregatingTransformParamsPtr params_)