SQL 函数
聚合函数
TDengine 支持针对数据的聚合查询。提供支持的聚合和选择函数如下:
COUNT
SELECT COUNT([*|field_name]) FROM tb_name [WHERE clause];
功能说明:统计表/超级表中记录行数或某列的非空值个数。
返回数据类型:长整型 INT64。
应用字段:应用全部字段。
适用于:表、超级表。
使用说明:
- 可以使用星号(*)来替代具体的字段,使用星号(*)返回全部记录数量。
- 针对同一表的(不包含 NULL 值)字段查询结果均相同。
- 如果统计对象是具体的列,则返回该列中非 NULL 值的记录数量。
示例:
taos> SELECT COUNT(*), COUNT(voltage) FROM meters;
count(*) | count(voltage) |
================================================
9 | 9 |
Query OK, 1 row(s) in set (0.004475s)
taos> SELECT COUNT(*), COUNT(voltage) FROM d1001;
count(*) | count(voltage) |
================================================
3 | 3 |
Query OK, 1 row(s) in set (0.001075s)
AVG
SELECT AVG(field_name) FROM tb_name [WHERE clause];
功能说明:统计表/超级表中某列的平均值。
返回数据类型:双精度浮点数 Double。
应用字段:不能应用在 timestamp、binary、nchar、bool 字段。
适用于:表、超级表。
示例:
taos> SELECT AVG(current), AVG(voltage), AVG(phase) FROM meters;
avg(current) | avg(voltage) | avg(phase) |
====================================================================================
11.466666751 | 220.444444444 | 0.293333333 |
Query OK, 1 row(s) in set (0.004135s)
taos> SELECT AVG(current), AVG(voltage), AVG(phase) FROM d1001;
avg(current) | avg(voltage) | avg(phase) |
====================================================================================
11.733333588 | 219.333333333 | 0.316666673 |
Query OK, 1 row(s) in set (0.000943s)
TWA
SELECT TWA(field_name) FROM tb_name WHERE clause;
功能说明:时间加权平均函数。统计表中某列在一段时间内的时间加权平均。
返回数据类型:双精度浮点数 Double。
应用字段:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:表、超级表。
使用说明:
- 从 2.1.3.0 版本开始,TWA 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
IRATE
SELECT IRATE(field_name) FROM tb_name WHERE clause;
功能说明:计算瞬时增长率。使用时间区间中最后两个样本数据来计算瞬时增长速率;如果这两个值呈递减关系,那么只取最后一个数用于计算,而不是使用二者差值。
返回数据类型:双精度浮点数 Double。
应用字段:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:表、超级表。
使用说明:
- 从 2.1.3.0 版本开始此函数可用,IRATE 可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
SUM
SELECT SUM(field_name) FROM tb_name [WHERE clause];
功能说明:统计表/超级表中某列的和。
返回数据类型:双精度浮点数 Double 和长整型 INT64。
应用字段:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:表、超级表。
示例:
taos> SELECT SUM(current), SUM(voltage), SUM(phase) FROM meters;
sum(current) | sum(voltage) | sum(phase) |
================================================================================
103.200000763 | 1984 | 2.640000001 |
Query OK, 1 row(s) in set (0.001702s)
taos> SELECT SUM(current), SUM(voltage), SUM(phase) FROM d1001;
sum(current) | sum(voltage) | sum(phase) |
================================================================================
35.200000763 | 658 | 0.950000018 |
Query OK, 1 row(s) in set (0.000980s)
STDDEV
SELECT STDDEV(field_name) FROM tb_name [WHERE clause];
功能说明:统计表中某列的均方差。
返回数据类型:双精度浮点数 Double。
应用字段:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:表、超级表(从 2.0.15.1 版本开始)
示例:
taos> SELECT STDDEV(current) FROM d1001;
stddev(current) |
============================
1.020892909 |
Query OK, 1 row(s) in set (0.000915s)
LEASTSQUARES
SELECT LEASTSQUARES(field_name, start_val, step_val) FROM tb_name [WHERE clause];
功能说明:统计表中某列的值是主键(时间戳)的拟合直线方程。start_val 是自变量初始 值,step_val 是自变量的步长值。
返回数据类型:字符串表达式(斜率, 截距)。
应用字段:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:表。
示例:
taos> SELECT LEASTSQUARES(current, 1, 1) FROM d1001;
leastsquares(current, 1, 1) |
=====================================================
{slop:1.000000, intercept:9.733334} |
Query OK, 1 row(s) in set (0.000921s)