feat(influx): 添加相邻时间点差值计算功能
- 在InfluxDbSqlConstant中新增DIFFERENCE常量定义 - 在InfluxQueryWrapper中添加difference方法实现差值计算功能 - 实现相邻时间点数据差值查询的SQL片段构建逻辑 - 支持通过字段名进行差值计算并返回查询包装器实例
This commit is contained in:
@@ -110,6 +110,7 @@ public interface InfluxDbSqlConstant {
|
|||||||
String REGULAR_PREFIX="~/^";
|
String REGULAR_PREFIX="~/^";
|
||||||
String REGULAR_SUFFIX="$/";
|
String REGULAR_SUFFIX="$/";
|
||||||
String REGULAR_MIDDLE="|";
|
String REGULAR_MIDDLE="|";
|
||||||
|
String DIFFERENCE = "DIFFERENCE";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* “ tz('Asia/Shanghai')”
|
* “ tz('Asia/Shanghai')”
|
||||||
|
|||||||
@@ -13,7 +13,10 @@ import org.influxdb.annotation.Column;
|
|||||||
import org.influxdb.annotation.Measurement;
|
import org.influxdb.annotation.Measurement;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
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
|
* @author hongawen
|
||||||
@@ -595,6 +598,25 @@ public class InfluxQueryWrapper {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 计算相邻时间点之间的差值
|
||||||
|
* @author xy
|
||||||
|
* @param columnName 表字段名
|
||||||
|
* @return InfluxQueryWrapper
|
||||||
|
* DIFFERENCE("columnName")
|
||||||
|
*/
|
||||||
|
public <T, R> 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;
|
||||||
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 注:该函数还需调研,暂时不要用
|
* 注:该函数还需调研,暂时不要用
|
||||||
* 统计指定字段邻近值的变化率
|
* 统计指定字段邻近值的变化率
|
||||||
|
|||||||
Reference in New Issue
Block a user