diff --git a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java index 93580df..e49ae33 100644 --- a/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java +++ b/src/main/java/com/njcn/influx/constant/InfluxDbSqlConstant.java @@ -110,6 +110,7 @@ public interface InfluxDbSqlConstant { String REGULAR_PREFIX="~/^"; String REGULAR_SUFFIX="$/"; String REGULAR_MIDDLE="|"; + String DIFFERENCE = "DIFFERENCE"; /** * “ tz('Asia/Shanghai')” diff --git a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java index d0211ec..409a567 100644 --- a/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java +++ b/src/main/java/com/njcn/influx/query/InfluxQueryWrapper.java @@ -13,7 +13,10 @@ import org.influxdb.annotation.Column; import org.influxdb.annotation.Measurement; import java.lang.reflect.Field; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; /** * @author hongawen @@ -595,6 +598,25 @@ public class InfluxQueryWrapper { return this; } + /*** + * 计算相邻时间点之间的差值 + * @author xy + * @param columnName 表字段名 + * @return InfluxQueryWrapper + * DIFFERENCE("columnName") + */ + public InfluxQueryWrapper difference(String columnName) { + String selectFragment = InfluxDbSqlConstant.DIFFERENCE + + InfluxDbSqlConstant.LBK + + InfluxDbSqlConstant.DQM + + columnName + + InfluxDbSqlConstant.DQM + + InfluxDbSqlConstant.RBK + + InfluxDbSqlConstant.AS_VALUE; + selectColumns.add(selectFragment); + return this; + } + /*** * 注:该函数还需调研,暂时不要用 * 统计指定字段邻近值的变化率