diff --git a/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/SqlBuilder.java b/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/SqlBuilder.java index 674c4147f..dde8d2713 100644 --- a/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/SqlBuilder.java +++ b/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/SqlBuilder.java @@ -262,8 +262,14 @@ private SqlNode createOrderNode(OrderOperator operator) { } if (operator.getAggOperator() != null) { SqlOperator aggOperator = mappingSqlAggFunction(operator.getAggOperator()); - sqlNode = new SqlBasicCall(aggOperator, - new SqlNode[]{sqlNode}, SqlParserPos.ZERO); + if (operator.getAggOperator() == AggregateOperator.SqlOperator.COUNT_DISTINCT) { + sqlNode = SqlNodeUtils + .createSqlBasicCall(aggOperator, Collections.singletonList(sqlNode), + SqlLiteral.createSymbol(SqlSelectKeyword.DISTINCT, SqlParserPos.ZERO)); + } else { + sqlNode = new SqlBasicCall(aggOperator, + new SqlNode[]{sqlNode}, SqlParserPos.ZERO); + } } if (operator.getOperator() == OrderOperator.SqlOperator.DESC) { return new SqlBasicCall(SqlStdOperatorTable.DESC,