private boolean hasAggregates(QuerySpecification node) {
      List<Node> toExtract =
          ImmutableList.<Node>builder()
              .addAll(node.getSelect().getSelectItems())
              .addAll(getSortItemsFromOrderBy(node.getOrderBy()))
              .build();

      List<FunctionCall> aggregates = extractAggregateFunctions(toExtract);

      return !aggregates.isEmpty();
    }
Check if there is Columns function in expression, and verify they are same if there are multi
Column functions.

@param expression input expression
@return if there is Columns function in expression
@throws SemanticException if there are multi Columns functions but different
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java