From 2b36c07bc0b094b3ffa8a0b9d44a99c805b1d9f7 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Mon, 17 Jul 2023 10:45:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=B9=B3=E5=9D=87?= =?UTF-8?q?=E5=80=BC=E7=9A=84=E6=89=B9=E9=87=8F=E5=A4=84=E7=90=86=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../influx/constant/InfluxDbSqlConstant.java | 1 + .../njcn/influx/query/InfluxQueryWrapper.java | 41 ++++++++++++++----- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java index 53ac4d3..37a3a0c 100644 --- a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java +++ b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java @@ -86,6 +86,7 @@ public interface InfluxDbSqlConstant { String MAX = "MAX"; String MIN = "MIN"; String AVG = "MEAN"; + String CP95 = "CP95"; String MEDIAN = "MEDIAN"; String MODE = "MODE"; String SPREAD = "SPREAD"; diff --git a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java index d1cb84f..a2e1dc7 100644 --- a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java +++ b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java @@ -132,17 +132,18 @@ public class InfluxQueryWrapper { } return this; } - public InfluxQueryWrapper select(String columnName,String resultColumnName) { + + public InfluxQueryWrapper select(String columnName, String resultColumnName) { StringBuilder selectFragment = new StringBuilder(); selectFragment.append(StrPool.C_SPACE) - .append(columnName) - .append(StrPool.C_SPACE) - .append(InfluxDbSqlConstant.AS) - .append(StrPool.C_SPACE) - .append(resultColumnName) - .append(StrPool.C_SPACE); - selectColumns.add(selectFragment+""); + .append(columnName) + .append(StrPool.C_SPACE) + .append(InfluxDbSqlConstant.AS) + .append(StrPool.C_SPACE) + .append(resultColumnName) + .append(StrPool.C_SPACE); + selectColumns.add(selectFragment + ""); return this; } @@ -172,7 +173,6 @@ public class InfluxQueryWrapper { // } - /************常见的简单函数处理比如max/min/mean/percentile****************/ /*** @@ -267,7 +267,7 @@ public class InfluxQueryWrapper { return this; } - public InfluxQueryWrapper mean(String columnName) { + public InfluxQueryWrapper mean(String columnName) { String selectFragment = InfluxDbSqlConstant.AVG + InfluxDbSqlConstant.LBK + InfluxDbSqlConstant.DQM + @@ -281,6 +281,25 @@ public class InfluxQueryWrapper { return this; } + /*** + * 批量获取指定字段平均值 + * @author hongawen + * @param prefix 表字段名 + * @param suffix 映射名称 + * @return InfluxQueryWrapper + * 输出 mean(prefix+diffContent+suffix) as prefix+diffContent+suffix + */ + public InfluxQueryWrapper meanSamePrefixAndSuffix(String prefix, String suffix, List diffContent) { + if (CollectionUtil.isEmpty(diffContent)) { + throw new RuntimeException("查询数值集合为空,请校验!"); + } + for (Object obj : diffContent) { + String fieldName = prefix + obj + suffix; + this.mean(fieldName); + } + return this; + } + /*** * 统计中位数 @@ -1310,7 +1329,7 @@ public class InfluxQueryWrapper { public final InfluxQueryWrapper groupBy(String columnName) { - groupColumn.add(columnName); + groupColumn.add(columnName); return this; }