public static boolean canSplitToMultiPhases(String name) {
    final String functionName = name.toLowerCase();
    switch (functionName) {
      case "min_time":
      case "max_time":
      case "max_value":
      case "min_value":
      case "extreme":
      case "first_value":
      case "last_value":
      case "count":
      case "avg":
      case "sum":
      case "time_duration":
      case "mode":
      case "stddev":
      case "stddev_pop":
      case "stddev_samp":
      case "variance":
      case "var_pop":
      case "var_samp":
      case "max_by":
      case "min_by":
        return true;
      case "count_if":
      case "count_time":
        return false;
      default:
        throw new IllegalArgumentException("Invalid Aggregation function: " + name);
    }
  }
@return if the Aggregation can split to multi phases
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/udf/builtin/BuiltinAggregationFunction.java