(improvement)(chat) The group by field can be added even if the group by field already exists (#192)

This commit is contained in:
lexluo09
2023-10-11 13:14:42 +08:00
committed by GitHub
parent d6cefaa6d2
commit 6b2a14e589
2 changed files with 11 additions and 1 deletions

View File

@@ -312,7 +312,7 @@ public class SqlParserUpdateHelper {
}
public static String addGroupBy(String sql, Set<String> groupByFields) {
if (SqlParserSelectHelper.hasGroupBy(sql) || CollectionUtils.isEmpty(groupByFields)) {
if (CollectionUtils.isEmpty(groupByFields)) {
return sql;
}
Select selectStatement = SqlParserSelectHelper.getSelect(sql);
@@ -324,6 +324,10 @@ public class SqlParserUpdateHelper {
PlainSelect plainSelect = (PlainSelect) selectBody;
GroupByElement groupByElement = new GroupByElement();
List<String> originalGroupByFields = SqlParserSelectHelper.getGroupByFields(sql);
if (!CollectionUtils.isEmpty(originalGroupByFields)) {
groupByFields.addAll(originalGroupByFields);
}
for (String groupByField : groupByFields) {
groupByElement.addGroupByExpression(new Column(groupByField));
}