(improvement)(chat) group by corrector remove aggregate fields (#186)

This commit is contained in:
lexluo09
2023-10-10 17:42:19 +08:00
committed by GitHub
parent 500652da36
commit 3b1cbd4fd7
3 changed files with 43 additions and 1 deletions

View File

@@ -47,7 +47,15 @@ public class GroupByCorrector extends BaseSemanticCorrector {
if (CollectionUtils.isEmpty(selectFields) || CollectionUtils.isEmpty(dimensions)) {
return;
}
Set<String> groupByFields = selectFields.stream().filter(field -> dimensions.contains(field))
List<String> aggregateFields = SqlParserSelectHelper.getAggregateFields(sql);
Set<String> groupByFields = selectFields.stream()
.filter(field -> dimensions.contains(field))
.filter(field -> {
if (!CollectionUtils.isEmpty(aggregateFields) && aggregateFields.contains(field)) {
return false;
}
return true;
})
.collect(Collectors.toSet());
semanticCorrectInfo.setSql(SqlParserUpdateHelper.addGroupBy(sql, groupByFields));
}