diff --git a/be/src/pipeline/exec/distinct_streaming_aggregation_sink_operator.cpp b/be/src/pipeline/exec/distinct_streaming_aggregation_sink_operator.cpp index 81126b84ffff33..635817973c72c3 100644 --- a/be/src/pipeline/exec/distinct_streaming_aggregation_sink_operator.cpp +++ b/be/src/pipeline/exec/distinct_streaming_aggregation_sink_operator.cpp @@ -55,8 +55,7 @@ Status DistinctStreamingAggSinkOperator::sink(RuntimeState* state, vectorized::B // get enough data or reached limit rows, need push block to queue if (_node->limit() != -1 && (_output_block->rows() + _output_distinct_rows) >= _node->limit()) { - auto need_cut_rows = (_output_block->rows() + _output_distinct_rows) - _node->limit(); - auto limit_rows = _output_block->rows() - need_cut_rows; + auto limit_rows = _node->limit() - _output_distinct_rows; _output_block->set_num_rows(limit_rows); _output_distinct_rows += limit_rows; _data_queue->push_block(std::move(_output_block));