private void calculateNextAggregationResult() {
    // Consume current input tsBlocks
    for (TreeAggregator aggregator : aggregators) {
      aggregator.processTsBlocks(inputTsBlocks);
    }

    for (int i = 0; i < inputOperatorsCount; i++) {
      inputTsBlocks[i] = inputTsBlocks[i].skipFirst();
      if (inputTsBlocks[i].isEmpty()) {
        inputTsBlocks[i] = null;
      }
    }

    // Update result using aggregators
    updateResultTsBlock();
  }
{@link AggregationOperator} can process the situation: aggregation of intermediate aggregate
result, it will output one tsBlock contain many results on aggregation time intervals. One
intermediate tsBlock input will contain the result of many time intervals.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/AggregationOperator.java