Browse Source

增加不重复计数

chenw 6 years ago
parent
commit
f7d92a5d2e

+ 8 - 0
bi-server/src/main/java/com/usoftchina/bi/server/dao/chart/ShowChartsMapper.java

@@ -194,6 +194,14 @@ public interface ShowChartsMapper {
     Double getColumnData(@Param("tableName") String tableName, @Param("columnName") String columnName,
                         @Param("operation") String operation, @Param("screen") String screen);
 
+    /**
+     * 不重复计数
+     * @return
+     */
+    @Select("SELECT COUNT(${columnName}) FROM (SELECT DISTINCT ${columnName} FROM ${tableName} ${screen})")
+    Double getDistinctCountColumnData(@Param("tableName") String tableName, @Param("columnName") String columnName,
+                                      @Param("operation") String operation, @Param("screen") String screen);
+
     /*
     取主键名称
      */

+ 2 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/chart/ShowPopulationService.java

@@ -101,6 +101,8 @@ public class ShowPopulationService {
                     value = showChartsMapper.getValue(tableName, columnName, calculation, min, median);
                 } else if ("PERCENT".equals(operator)) {
                     value = 1.00;
+                } else if("dictinctCount".equalsIgnoreCase(operator)){
+                    value = showChartsMapper.getDistinctCountColumnData(tableName, columnName, operator, screenStr);
                 } else {
                     value = showChartsMapper.getColumnData(tableName, columnName, operator, screenStr);
                 }