feat(influx): 添加相邻时间点差值计算功能

- 在InfluxDbSqlConstant中新增DIFFERENCE常量定义
- 在InfluxQueryWrapper中添加difference方法实现差值计算功能
- 实现相邻时间点数据差值查询的SQL片段构建逻辑
- 支持通过字段名进行差值计算并返回查询包装器实例
This commit is contained in:
xy
2026-06-03 10:12:55 +08:00
parent 0088ac746d
commit a6fba7db34
2 changed files with 24 additions and 1 deletions

View File

@@ -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')”

View File

@@ -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;
}
/*** /***
* 注:该函数还需调研,暂时不要用 * 注:该函数还需调研,暂时不要用
* 统计指定字段邻近值的变化率 * 统计指定字段邻近值的变化率