```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─┐
└───┘
```
AggregatingTransformParamsPtr params_,
        ManyAggregatedDataVariantsPtr data_,
        SharedDataPtr shared_data_,
        Arena * arena_)
        : ISource(params_->getHeader(), false)
        , params(std::move(params_))
        , data(std::move(data_))
        , shared_data(std::move(shared_data_))
        , arena(arena_)
        {}
    String getName() const override { return "ConvertingAggregatedToChunksSource"; }
protected:
    Chunk generate() override
    {
        UInt32 bucket_num = shared_data->next_bucket_to_merge.fetch_add(1);
        if (bucket_num >= NUM_BUCKETS)
            return {};
        Block block = params->aggregator.mergeAndConvertOneBucketToBlock(*data, arena, params->final, bucket_num, &shared_data->is_cancelled);
        Chunk chunk = convertToChunk(block);
        shared_data->is_bucket_processed[bucket_num] = true;
        return chunk;
    }
private:
    AggregatingTransformParamsPtr params;
    ManyAggregatedDataVariantsPtr data;
    SharedDataPtr shared_data;
    Arena * arena;
};
class ConvertingAggregatedToChunksTransform : public IProcessor