diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index d376712797..d69e0df2e8 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -599,10 +599,22 @@ public class DatasetDataManage { datasourceRequest.setDsList(dsMap); Map data = calciteProvider.fetchResultField(datasourceRequest); List dataList = (List) data.get("data"); - List> previewData = new ArrayList<>(); + Map distinctData = new LinkedHashMap<>(); + for (String[] arr : dataList) { + String key = Arrays.toString(arr); + if (!distinctData.containsKey(key)) { + distinctData.put(key, arr); + } + } - if (ObjectUtils.isNotEmpty(dataList)) { - for (String[] ele : dataList) { + List distinctDataList = new ArrayList<>(); + for (Map.Entry ele : distinctData.entrySet()) { + distinctDataList.add(ele.getValue()); + } + + List> previewData = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(distinctDataList)) { + for (String[] ele : distinctDataList) { Map map = new LinkedHashMap<>(); for (int i = 0; i < ele.length; i++) { String val = ele[i];