diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java index 9bb7979d9..a146d077d 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java @@ -246,7 +246,7 @@ public class QueryReqConverter { DataSetQueryParam viewQueryParam) { String sql = viewQueryParam.getSql(); for (MetricTable metricTable : viewQueryParam.getTables()) { - List measures = new ArrayList<>(); + Set measures = new HashSet<>(); Map replaces = new HashMap<>(); generateDerivedMetric(semanticSchemaResp, aggOption, metricTable.getMetrics(), metricTable.getDimensions(), @@ -257,7 +257,7 @@ public class QueryReqConverter { metricTable.setAggOption(AggOption.NATIVE); // metricTable use measures replace metric if (!CollectionUtils.isEmpty(measures)) { - metricTable.setMetrics(measures); + metricTable.setMetrics(new ArrayList<>(measures)); } } } @@ -266,7 +266,7 @@ public class QueryReqConverter { private void generateDerivedMetric(SemanticSchemaResp semanticSchemaResp, AggOption aggOption, List metrics, List dimensions, - List measures, Map replaces) { + Set measures, Map replaces) { List metricResps = semanticSchemaResp.getMetrics(); List dimensionResps = semanticSchemaResp.getDimensions(); // check metrics has derived