```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─┐
└───┘
```
double elapsed_seconds = watch.elapsedSeconds();
    size_t rows = variants.sizeWithoutOverflowRow();
    LOG_DEBUG(log, "Aggregated. {} to {} rows (from {}) in {} sec. ({:.3f} rows/sec., {}/sec.)",
        src_rows, rows, ReadableSize(src_bytes),
        elapsed_seconds, src_rows / elapsed_seconds,
        ReadableSize(src_bytes / elapsed_seconds));
    if (params->aggregator.hasTemporaryFiles())
    {
        if (variants.isConvertibleToTwoLevel())
            variants.convertToTwoLevel();
        
        if (!variants.empty())
            params->aggregator.writeToTemporaryFile(variants);
    }
    if (many_data->num_finished.fetch_add(1) + 1 < many_data->variants.size())
        return;
    if (!params->aggregator.hasTemporaryFiles())
    {
        auto prepared_data = params->aggregator.prepareVariantsToMerge(many_data->variants);
        auto prepared_data_ptr = std::make_shared<ManyAggregatedDataVariants>(std::move(prepared_data));
        processors.emplace_back(std::make_shared<ConvertingAggregatedToChunksTransform>(params, std::move(prepared_data_ptr), max_threads));
    }
    else
    {
        
        
        ProfileEvents::increment(ProfileEvents::ExternalAggregationMerge);
        if (many_data->variants.size() > 1)
        {