diff --git a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index 204a3f73f0..26e12c4b12 100644 --- a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -155,7 +155,10 @@ public class DorisQueryProvider extends QueryProvider { STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("previewSql"); st_sql.add("isGroup", isGroup); - if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); + if (CollectionUtils.isNotEmpty(xFields)) { + st_sql.add("useAliasForGroup", true); + st_sql.add("groups", xFields); + } if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); String customWheres = transCustomFilterList(tableObj, fieldCustomFilter); // row permissions tree @@ -345,7 +348,10 @@ public class DorisQueryProvider extends QueryProvider { STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("querySql"); - if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); + if (CollectionUtils.isNotEmpty(xFields)) { + st_sql.add("useAliasForGroup", true); + st_sql.add("groups", xFields); + } if (CollectionUtils.isNotEmpty(yFields)) st_sql.add("aggregators", yFields); if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); @@ -435,7 +441,10 @@ public class DorisQueryProvider extends QueryProvider { STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("previewSql"); st_sql.add("isGroup", false); - if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); + if (CollectionUtils.isNotEmpty(xFields)) { + st_sql.add("useAliasForGroup", true); + st_sql.add("groups", xFields); + } if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); String sql = st_sql.render(); @@ -558,7 +567,10 @@ public class DorisQueryProvider extends QueryProvider { STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("querySql"); - if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); + if (CollectionUtils.isNotEmpty(xFields)) { + st_sql.add("useAliasForGroup", true); + st_sql.add("groups", xFields); + } if (CollectionUtils.isNotEmpty(yFields)) st_sql.add("aggregators", yFields); if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); @@ -672,7 +684,10 @@ public class DorisQueryProvider extends QueryProvider { STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("querySql"); - if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); + if (CollectionUtils.isNotEmpty(xFields)) { + st_sql.add("useAliasForGroup", true); + st_sql.add("groups", xFields); + } if (CollectionUtils.isNotEmpty(yFields)) st_sql.add("aggregators", yFields); if (CollectionUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); diff --git a/backend/src/main/resources/sql/sqlTemplate.stg b/backend/src/main/resources/sql/sqlTemplate.stg index 41cd934e64..9a0485cd51 100644 --- a/backend/src/main/resources/sql/sqlTemplate.stg +++ b/backend/src/main/resources/sql/sqlTemplate.stg @@ -1,4 +1,4 @@ -querySql(limitFiled, groups, aggregators, filters, orders, table, notUseAs) +querySql(limitFiled, groups, aggregators, filters, orders, table, notUseAs, useAliasForGroup) ::=<< SELECT @@ -25,8 +25,13 @@ WHERE GROUP BY + }; separator=",\n"> + + }; separator=",\n"> + + ORDER BY }; separator=",\n"> @@ -34,7 +39,7 @@ ORDER BY >> -previewSql(limitFiled, groups, aggregators, filters, orders, table, isGroup, notUseAs) +previewSql(limitFiled, groups, aggregators, filters, orders, table, isGroup, notUseAs, useAliasForGroup) ::=<< SELECT @@ -61,8 +66,13 @@ WHERE GROUP BY + }; separator=",\n"> + + }; separator=",\n"> + + ORDER BY }; separator=",\n">