mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-11 12:07:42 +00:00
(improvement)(chat) support show sum metric in chinese name and support multiple conditions in having and if not exist metirc than not addAggregateToMetric (#165)
This commit is contained in:
@@ -30,8 +30,6 @@ public class GlobalBeforeCorrector extends BaseSemanticCorrector {
|
||||
correctFieldName(semanticCorrectInfo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void replaceAlias(SemanticCorrectInfo semanticCorrectInfo) {
|
||||
String replaceAlias = SqlParserUpdateHelper.replaceAlias(semanticCorrectInfo.getSql());
|
||||
semanticCorrectInfo.setSql(replaceAlias);
|
||||
|
||||
@@ -30,21 +30,18 @@ public class GroupByCorrector extends BaseSemanticCorrector {
|
||||
|
||||
if (!CollectionUtils.isEmpty(selectFields)
|
||||
&& !CollectionUtils.isEmpty(metrics)
|
||||
&& selectFields.stream().anyMatch(s -> metrics.contains(s))) {
|
||||
return;
|
||||
&& !selectFields.stream().anyMatch(s -> metrics.contains(s))) {
|
||||
//add aggregate to all metric
|
||||
addAggregateToMetric(semanticCorrectInfo);
|
||||
}
|
||||
|
||||
//add aggregate to all metric
|
||||
addAggregateToMetric(semanticCorrectInfo);
|
||||
|
||||
//add dimension group by
|
||||
String sql = semanticCorrectInfo.getSql();
|
||||
SemanticSchema semanticSchema = ContextUtils.getBean(SchemaService.class).getSemanticSchema();
|
||||
|
||||
Set<String> dimensions = semanticSchema.getDimensions(modelId).stream()
|
||||
.filter(schemaElement -> !DateUtils.DATE_FIELD.equals(schemaElement.getBizName()))
|
||||
.map(schemaElement -> schemaElement.getName()).collect(Collectors.toSet());
|
||||
|
||||
dimensions.add(DateUtils.DATE_FIELD);
|
||||
selectFields = SqlParserSelectHelper.getSelectFields(sql);
|
||||
|
||||
if (CollectionUtils.isEmpty(selectFields) || CollectionUtils.isEmpty(dimensions)) {
|
||||
|
||||
Reference in New Issue
Block a user