diff --git a/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelper.java b/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelper.java index e9e7a4992..9e745bbb0 100644 --- a/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelper.java +++ b/common/src/main/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelper.java @@ -30,10 +30,7 @@ public class SqlSelectFunctionHelper { Arrays.asList("SUM", "COUNT", "MAX", "MIN", "AVG"); public static boolean hasAggregateFunction(String sql) { - if (!CollectionUtils.isEmpty(getFunctions(sql))) { - return true; - } - return SqlSelectHelper.hasGroupBy(sql); + return !CollectionUtils.isEmpty(getFunctions(sql)); } public static boolean hasFunction(String sql, String functionName) { diff --git a/common/src/test/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelperTest.java b/common/src/test/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelperTest.java index 0c2719542..af15910ea 100644 --- a/common/src/test/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelperTest.java +++ b/common/src/test/java/com/tencent/supersonic/common/jsqlparser/SqlSelectFunctionHelperTest.java @@ -35,7 +35,7 @@ class SqlSelectFunctionHelperTest { hasAggregateFunction = SqlSelectFunctionHelper.hasAggregateFunction(sql); Assert.assertEquals(hasAggregateFunction, false); - sql = "SELECT user_name, pv FROM t_34 WHERE sys_imp_date <= '2023-09-03' " + sql = "SELECT user_name, sum(pv) FROM t_34 WHERE sys_imp_date <= '2023-09-03' " + "AND sys_imp_date >= '2023-08-04' GROUP BY user_name ORDER BY sum(pv) DESC LIMIT 10"; hasAggregateFunction = SqlSelectFunctionHelper.hasAggregateFunction(sql); Assert.assertEquals(hasAggregateFunction, true); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java index 9bdde7571..f999db625 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/QueryTypeParser.java @@ -68,9 +68,8 @@ public class QueryTypeParser implements SemanticParser { } } - // 2. metric queryType - if (selectContainsMetric(sqlInfo, dataSetId, semanticSchema) - || SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) { + // 2. AGG queryType + if (SqlSelectFunctionHelper.hasAggregateFunction(sqlInfo.getParsedS2SQL())) { return QueryType.AGGREGATE; }