TDengine 聚合函数 STDDEV 用户手册
STDDEV 函数用户手册
1. 函数简介
STDDEV
是 TDengine 的聚合函数,用于计算某一数值字段的标准差,衡量数据波动性。适用于电流、电压、功率等时序数据的波动分析。
2. 语法说明
SELECT STDDEV(column_name) FROM meters [WHERE condition];
-- 或用于窗口聚合
SELECT STDDEV(column_name) FROM meters [WHERE condition] INTERVAL(window_size);
column_name
:需要计算标准差的字段,必须为数值类型。meters
:智能电表超级表名。condition
:可选,筛选数据的条件。window_size
:如1h
、1d
,窗口聚合单位。
3. 参数说明
- 支持数据类型:
TINYINT
、SMALLINT
、INT
、BIGINT
、FLOAT
、DOUBLE
等。 - NULL 值自动忽略。
- 支持窗口聚合(INTERVAL),不支持与 GROUP BY 同时使用。
4. 返回值
- 返回 DOUBLE 类型的标准差。
- 无有效数据时返回 NULL。
5. 智能电表场景使用示例
场景一:每小时电流波动分析
SELECT STDDEV(current) AS current_stddev
FROM meters
WHERE location = 'California.SanFrancisco'AND ts >= NOW - 1d
INTERVAL(1h);
说明:统计过去一天每小时的电流标准差,分析用电波动。
场景二:单设备电压波动分析
SELECT STDDEV(voltage) AS voltage_stddev
FROM meters
WHERE tbname = 'd1001'AND ts >= NOW - 7d;
说明:统计某台电表一周内的电压波动情况。
场景三:分区统计各设备电流波动
SELECT tbname, STDDEV(current) AS current_stddev
FROM meters
WHERE location = 'California.LosAngles'AND ts >= NOW - 1d
PARTITION BY tbname;
说明:统计每台设备过去一天的电流标准差,便于对比设备运行稳定性。
场景四:检测异常用电行为
SELECT STDDEV(current) AS current_stddev
FROM meters
WHERE tbname = 'd1002'AND ts >= '2024-09-01 00:00:00' AND ts < '2024-09-02 00:00:00';
说明:统计某设备某天的电流标准差,标准差异常增大可能说明用电异常或设备故障。
场景五:窗口聚合分析电压波动
SELECT STDDEV(voltage) AS voltage_stddev
FROM meters
WHERE location = 'California.Cupertino'AND ts >= NOW - 1d
INTERVAL(30m);
说明:每 30 分钟统计一次电压标准差,监控电压质量。
6. 注意事项
- 仅支持数值型字段。
- 对于大数据量,建议加时间过滤提升性能。
通过合理使用 STDDEV 函数,可以高效分析智能电表数据的波动性,辅助用电异常检测、设备健康评估和电网质量监控。
关于 TDengine
TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。