private boolean skipPreviousWindowAndInitCurWindow() {
    // Before we initialize windowManager and aggregators, we should ensure that we have consumed
    // all points belong to previous window
    inputTsBlock = windowManager.skipPointsOutOfCurWindow(inputTsBlock);
    // After skipping, if tsBlock is empty, we cannot ensure that we have consumed all points belong
    // to previous window, we should go back to calculateNextAggregationResult() to get a new
    // tsBlock
    if (inputTsBlock == null || inputTsBlock.isEmpty()) {
      return false;
    }
    // If we have consumed all points belong to previous window, we can initialize current window
    // and aggregators
    initWindowAndAggregators();
    return true;
  }
RawDataAggregationOperator is used to process raw data tsBlock input calculating using value
filter. It's possible that there is more than one tsBlock input in one time interval. And it's
also possible that one tsBlock can cover multiple time intervals too.

<p>Since raw data query with value filter is processed by FilterOperator above TimeJoinOperator,
there we can see RawDataAggregateOperator as a one-to-one(one input, ont output) operator.

<p>Return aggregation result in many time intervals once.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/operator/process/RawDataAggregationOperator.java