• TDengine函数大全-时序库特有函数


    以下内容来自 TDengine 官方文档
    GitHub 内容 。

    以下所有示例基于 TDengine 3.1.0.3

    TDengine函数大全

    1.数学函数
    2.字符串函数
    3.转换函数
    4.时间和日期函数
    5.聚合函数
    6.选择函数
    7.时序数据库特有函数
    8.系统函数

    CSUM

    CSUM(expr)
    
    • 1

    功能说明:累加和(Cumulative sum),输出行与输入行数相同。

    返回结果类型: 输入列如果是整数类型返回值为长整型 (int64_t),浮点数返回值为双精度浮点数(Double)。无符号整数类型返回值为无符号长整型(uint64_t)。

    适用数据类型:数值类型。

    嵌套子查询支持: 适用于内层查询和外层查询。

    适用于:表和超级表。

    使用说明

    • 不支持 +、-、*、/ 运算,如 csum(col1) + csum(col2)。
    • 只能与聚合(Aggregation)函数一起使用。 该函数可以应用在普通表和超级表上。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
    
    > select csum(v1) from t7;
           csum(v1)        |
    ========================
                         1 |
                         3 |
                         6 |
                        10 |
                        15 |
                        21 |
                        28 |
                        36 |
                        45 |
                        55 |
                        65 |
    
    > select ts,csum(v1) from t7;
               ts            |       csum(v1)        |
    ==================================================
     2023-08-01 01:01:01.000 |                     1 |
     2023-08-01 01:01:02.000 |                     3 |
     2023-08-01 01:01:03.000 |                     6 |
     2023-08-01 01:01:04.000 |                    10 |
     2023-08-01 01:01:05.000 |                    15 |
     2023-08-01 01:01:06.000 |                    21 |
     2023-08-01 01:01:07.000 |                    28 |
     2023-08-01 01:01:08.000 |                    36 |
     2023-08-01 01:01:09.000 |                    45 |
     2023-08-01 01:01:10.000 |                    55 |
     2023-08-01 01:01:12.000 |                    65 |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    DERIVATIVE

    DERIVATIVE(expr, time_interval, ignore_negative)
    
    ignore_negative: {
        0
      | 1
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    功能说明:统计表中某列数值的单位变化率。其中单位时间区间的长度可以通过 time_interval 参数指定,最小可以是 1 秒(1s);ignore_negative 参数的值可以是 0 或 1,为 1 时表示忽略负值。

    返回数据类型:DOUBLE。

    适用数据类型:数值类型。

    适用于:表和超级表。

    使用说明:

    • 可以与选择相关联的列一起使用。 例如: select _rowts, DERIVATIVE() from。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    Query OK, 14 row(s) in set (0.001077s)
    
    taos> select _rowts,derivative(v1,1s,0) from t7;
             _rowts          |    derivative(v1,1s,0)    |
    ======================================================
     2023-08-01 01:01:02.000 |         1.000000000000000 |
     2023-08-01 01:01:03.000 |         1.000000000000000 |
     2023-08-01 01:01:04.000 |         1.000000000000000 |
     2023-08-01 01:01:05.000 |         1.000000000000000 |
     2023-08-01 01:01:06.000 |         1.000000000000000 |
     2023-08-01 01:01:07.000 |         1.000000000000000 |
     2023-08-01 01:01:08.000 |         1.000000000000000 |
     2023-08-01 01:01:09.000 |         1.000000000000000 |
     2023-08-01 01:01:10.000 |         1.000000000000000 |
     2023-08-01 01:01:12.000 |         0.000000000000000 |
     2023-08-01 01:01:13.000 |       -12.000000000000000 |
    Query OK, 11 row(s) in set (0.001550s)
    
    taos> select _rowts,derivative(v1,1s,1) from t7;
             _rowts          |    derivative(v1,1s,1)    |
    ======================================================
     2023-08-01 01:01:02.000 |         1.000000000000000 |
     2023-08-01 01:01:03.000 |         1.000000000000000 |
     2023-08-01 01:01:04.000 |         1.000000000000000 |
     2023-08-01 01:01:05.000 |         1.000000000000000 |
     2023-08-01 01:01:06.000 |         1.000000000000000 |
     2023-08-01 01:01:07.000 |         1.000000000000000 |
     2023-08-01 01:01:08.000 |         1.000000000000000 |
     2023-08-01 01:01:09.000 |         1.000000000000000 |
     2023-08-01 01:01:10.000 |         1.000000000000000 |
     2023-08-01 01:01:12.000 |         0.000000000000000 |
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    DIFF

    DIFF(expr [, ignore_negative])
    
    ignore_negative: {
        0
      | 1
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    功能说明:统计表中某列的值与前一行对应值的差。 ignore_negative 取值为 0|1 , 可以不填,默认值为 0. 不忽略负值。ignore_negative 为 1 时表示忽略负数。

    返回数据类型:同应用字段。

    适用数据类型:数值类型。

    适用于:表和超级表。

    使用说明:

    • 输出结果行数是范围内总行数减一,第一行没有结果输出。
    • 可以与选择相关联的列一起使用。 例如: select _rowts, DIFF() from。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    
    > select _rowts,diff(v1) from t7;
             _rowts          |       diff(v1)        |
    ==================================================
     1970-01-01 08:00:00.000 | NULL                  |
     2023-08-01 01:01:02.000 |                     1 |
     2023-08-01 01:01:03.000 |                     1 |
     2023-08-01 01:01:04.000 |                     1 |
     2023-08-01 01:01:05.000 |                     1 |
     2023-08-01 01:01:06.000 |                     1 |
     2023-08-01 01:01:07.000 |                     1 |
     2023-08-01 01:01:08.000 |                     1 |
     2023-08-01 01:01:09.000 |                     1 |
     2023-08-01 01:01:10.000 |                     1 |
     1970-01-01 08:00:00.000 | NULL                  |
     2023-08-01 01:01:12.000 |                     0 |
     2023-08-01 01:01:13.000 |                   -12 |
    
    > select _rowts,diff(v1,0) from t7;
             _rowts          |      diff(v1,0)       |
    ==================================================
     6426-05-31 11:01:03.576 | NULL                  |
     2023-08-01 01:01:02.000 |                     1 |
     2023-08-01 01:01:03.000 |                     1 |
     2023-08-01 01:01:04.000 |                     1 |
     2023-08-01 01:01:05.000 |                     1 |
     2023-08-01 01:01:06.000 |                     1 |
     2023-08-01 01:01:07.000 |                     1 |
     2023-08-01 01:01:08.000 |                     1 |
     2023-08-01 01:01:09.000 |                     1 |
     2023-08-01 01:01:10.000 |                     1 |
     2023-08-01 01:01:10.000 | NULL                  |
     2023-08-01 01:01:12.000 |                     0 |
     2023-08-01 01:01:13.000 |                   -12 |
    
    > select _rowts,diff(v1,1) from t7;
             _rowts          |      diff(v1,1)       |
    ==================================================
     1970-01-01 08:00:00.000 | NULL                  |
     2023-08-01 01:01:02.000 |                     1 |
     2023-08-01 01:01:03.000 |                     1 |
     2023-08-01 01:01:04.000 |                     1 |
     2023-08-01 01:01:05.000 |                     1 |
     2023-08-01 01:01:06.000 |                     1 |
     2023-08-01 01:01:07.000 |                     1 |
     2023-08-01 01:01:08.000 |                     1 |
     2023-08-01 01:01:09.000 |                     1 |
     2023-08-01 01:01:10.000 |                     1 |
     1970-01-01 08:00:00.000 | NULL                  |
     2023-08-01 01:01:12.000 |                     0 |
     2023-08-01 01:01:13.000 | NULL                  |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    IRATE

    IRATE(expr)
    
    • 1

    功能说明:计算瞬时增长率。使用时间区间中最后两个样本数据来计算瞬时增长速率;如果这两个值呈递减关系,那么只取最后一个数用于计算,而不是使用二者差值。

    返回数据类型:DOUBLE。

    适用数据类型:数值类型。

    适用于:表和超级表。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    
    > select irate(v1) from t7 where ts>='2023-08-01 01:01:10.000' and ts<='2023-08-01 01:01:12.000';
             irate(v1)         |
    ============================
             0.000000000000000 |
    
    > select irate(v1) from t7 where ts>='2023-08-01 01:01:01.000' and ts<='2023-08-01 01:01:04.000';
             irate(v1)         |
    ============================
             1.000000000000000 |
    
    > select _wstart,irate(v1) from t7 interval(2s);
             _wstart         |         irate(v1)         |
    ======================================================
     2023-08-01 01:01:00.000 |         0.000000000000000 |
     2023-08-01 01:01:02.000 |         1.000000000000000 |
     2023-08-01 01:01:04.000 |         1.000000000000000 |
     2023-08-01 01:01:06.000 |         1.000000000000000 |
     2023-08-01 01:01:08.000 |         1.000000000000000 |
     2023-08-01 01:01:10.000 |         0.000000000000000 |
     2023-08-01 01:01:12.000 |        -2.000000000000000 |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    MAVG

    MAVG(expr, k)
    
    • 1

    功能说明: 计算连续 k 个值的移动平均数(moving average)。如果输入行数小于 k,则无结果输出。参数 k 的合法输入范围是 1≤ k ≤ 1000。

    返回结果类型: DOUBLE。

    适用数据类型: 数值类型。

    嵌套子查询支持: 适用于内层查询和外层查询。

    适用于:表和超级表。

    使用说明

    • 不支持 +、-、*、/ 运算,如 mavg(col1, k1) + mavg(col2, k1);
    • 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用;

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    
    > select ts,mavg(v1,2) from t7;
               ts            |        mavg(v1,2)         |
    ======================================================
     2023-08-01 01:01:02.000 |         1.500000000000000 |
     2023-08-01 01:01:03.000 |         2.500000000000000 |
     2023-08-01 01:01:04.000 |         3.500000000000000 |
     2023-08-01 01:01:05.000 |         4.500000000000000 |
     2023-08-01 01:01:06.000 |         5.500000000000000 |
     2023-08-01 01:01:07.000 |         6.500000000000000 |
     2023-08-01 01:01:08.000 |         7.500000000000000 |
     2023-08-01 01:01:09.000 |         8.500000000000000 |
     2023-08-01 01:01:10.000 |         9.500000000000000 |
     2023-08-01 01:01:12.000 |        10.000000000000000 |
     2023-08-01 01:01:13.000 |         4.000000000000000 |
    
    > select ts,mavg(v1,4) from t7;
               ts            |        mavg(v1,4)         |
    ======================================================
     2023-08-01 01:01:04.000 |         2.500000000000000 |
     2023-08-01 01:01:05.000 |         3.500000000000000 |
     2023-08-01 01:01:06.000 |         4.500000000000000 |
     2023-08-01 01:01:07.000 |         5.500000000000000 |
     2023-08-01 01:01:08.000 |         6.500000000000000 |
     2023-08-01 01:01:09.000 |         7.500000000000000 |
     2023-08-01 01:01:10.000 |         8.500000000000000 |
     2023-08-01 01:01:12.000 |         9.250000000000000 |
     2023-08-01 01:01:13.000 |         6.750000000000000 |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    STATECOUNT

    STATECOUNT(expr, oper, val)
    
    • 1

    功能说明:返回满足某个条件的连续记录的个数,结果作为新的一列追加在每行后面。条件根据参数计算,如果条件为 true 则加 1,条件为 false 则重置为-1,如果数据为 NULL,跳过该条数据。

    参数范围

    • oper : “LT” (小于)、“GT”(大于)、“LE”(小于等于)、“GE”(大于等于)、“NE”(不等于)、“EQ”(等于),不区分大小写。
    • val : 数值型

    返回结果类型:INTEGER。

    适用数据类型:数值类型。

    嵌套子查询支持:不支持应用在子查询上。

    适用于:表和超级表。

    使用说明

    • 不能和窗口操作一起使用,例如 interval/state_window/session_window。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    
    > select ts,statecount(v1,'GT',5) from t7;
               ts            | statecount(v1,'GT',5) |
    ==================================================
     2023-08-01 01:01:00.000 | NULL                  |
     2023-08-01 01:01:01.000 |                    -1 |
     2023-08-01 01:01:02.000 |                    -1 |
     2023-08-01 01:01:03.000 |                    -1 |
     2023-08-01 01:01:04.000 |                    -1 |
     2023-08-01 01:01:05.000 |                    -1 |
     2023-08-01 01:01:06.000 |                     1 |
     2023-08-01 01:01:07.000 |                     2 |
     2023-08-01 01:01:08.000 |                     3 |
     2023-08-01 01:01:09.000 |                     4 |
     2023-08-01 01:01:10.000 |                     5 |
     2023-08-01 01:01:11.000 | NULL                  |
     2023-08-01 01:01:12.000 |                     6 |
     2023-08-01 01:01:13.000 |                    -1 |
    
    > select ts,statecount(v1,'GT',1) from t7;
               ts            | statecount(v1,'GT',1) |
    ==================================================
     2023-08-01 01:01:00.000 | NULL                  |
     2023-08-01 01:01:01.000 |                    -1 |
     2023-08-01 01:01:02.000 |                     1 |
     2023-08-01 01:01:03.000 |                     2 |
     2023-08-01 01:01:04.000 |                     3 |
     2023-08-01 01:01:05.000 |                     4 |
     2023-08-01 01:01:06.000 |                     5 |
     2023-08-01 01:01:07.000 |                     6 |
     2023-08-01 01:01:08.000 |                     7 |
     2023-08-01 01:01:09.000 |                     8 |
     2023-08-01 01:01:10.000 |                     9 |
     2023-08-01 01:01:11.000 | NULL                  |
     2023-08-01 01:01:12.000 |                    10 |
     2023-08-01 01:01:13.000 |                    -1 |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    STATEDURATION

    STATEDURATION(expr, oper, val, unit)
    
    • 1

    功能说明:返回满足某个条件的连续记录的时间长度,结果作为新的一列追加在每行后面。条件根据参数计算,如果条件为 true 则加上两个记录之间的时间长度(第一个满足条件的记录时间长度记为 0),条件为 false 则重置为-1,如果数据为 NULL,跳过该条数据。

    参数范围

    • oper : 'LT' (小于)、'GT'(大于)、'LE'(小于等于)、'GE'(大于等于)、'NE'(不等于)、'EQ'(等于),不区分大小写,但需要用''包括。
    • val : 数值型
    • unit : 时间长度的单位,可取值时间单位: 1b(纳秒), 1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天), 1w(周)。如果省略,默认为当前数据库精度。

    返回结果类型:INTEGER。

    适用数据类型:数值类型。

    嵌套子查询支持:不支持应用在子查询上。

    适用于:表和超级表。

    使用说明

    • 不能和窗口操作一起使用,例如 interval/state_window/session_window。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    
    > select  ts,stateduration(v1,'GT',5,1a) from t7;
               ts            | stateduration(v1,'GT',5,1a) |
    ========================================================
     2023-08-01 01:01:00.000 | NULL                        |
     2023-08-01 01:01:01.000 |                          -1 |
     2023-08-01 01:01:02.000 |                          -1 |
     2023-08-01 01:01:03.000 |                          -1 |
     2023-08-01 01:01:04.000 |                          -1 |
     2023-08-01 01:01:05.000 |                          -1 |
     2023-08-01 01:01:06.000 |                           0 |
     2023-08-01 01:01:07.000 |                        1000 |
     2023-08-01 01:01:08.000 |                        2000 |
     2023-08-01 01:01:09.000 |                        3000 |
     2023-08-01 01:01:10.000 |                        4000 |
     2023-08-01 01:01:11.000 | NULL                        |
     2023-08-01 01:01:12.000 |                        6000 |
     2023-08-01 01:01:13.000 |                          -1 |
    
    > select  ts,stateduration(v1,'GT',5,1s) from t7;
               ts            | stateduration(v1,'GT',5,1s) |
    ========================================================
     2023-08-01 01:01:00.000 | NULL                        |
     2023-08-01 01:01:01.000 |                          -1 |
     2023-08-01 01:01:02.000 |                          -1 |
     2023-08-01 01:01:03.000 |                          -1 |
     2023-08-01 01:01:04.000 |                          -1 |
     2023-08-01 01:01:05.000 |                          -1 |
     2023-08-01 01:01:06.000 |                           0 |
     2023-08-01 01:01:07.000 |                           1 |
     2023-08-01 01:01:08.000 |                           2 |
     2023-08-01 01:01:09.000 |                           3 |
     2023-08-01 01:01:10.000 |                           4 |
     2023-08-01 01:01:11.000 | NULL                        |
     2023-08-01 01:01:12.000 |                           6 |
     2023-08-01 01:01:13.000 |                          -1 |
    
    > select  ts,stateduration(v1,'GT',5,1m) from t7;
               ts            | stateduration(v1,'GT',5,1m) |
    ========================================================
     2023-08-01 01:01:00.000 | NULL                        |
     2023-08-01 01:01:01.000 |                          -1 |
     2023-08-01 01:01:02.000 |                          -1 |
     2023-08-01 01:01:03.000 |                          -1 |
     2023-08-01 01:01:04.000 |                          -1 |
     2023-08-01 01:01:05.000 |                          -1 |
     2023-08-01 01:01:06.000 |                           0 |
     2023-08-01 01:01:07.000 |                           0 |
     2023-08-01 01:01:08.000 |                           0 |
     2023-08-01 01:01:09.000 |                           0 |
     2023-08-01 01:01:10.000 |                           0 |
     2023-08-01 01:01:11.000 | NULL                        |
     2023-08-01 01:01:12.000 |                           0 |
     2023-08-01 01:01:13.000 |                          -1 |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    TWA

    TWA(expr)
    
    • 1

    功能说明:时间加权平均函数。统计表中某列在一段时间内的时间加权平均。

    返回数据类型:DOUBLE。

    适用数据类型:数值类型。

    适用于:表和超级表。

    示例:

    > select ts,v1 from t7;
               ts            |     v1      |
    ========================================
     2023-08-01 01:01:00.000 | NULL        |
     2023-08-01 01:01:01.000 |           1 |
     2023-08-01 01:01:02.000 |           2 |
     2023-08-01 01:01:03.000 |           3 |
     2023-08-01 01:01:04.000 |           4 |
     2023-08-01 01:01:05.000 |           5 |
     2023-08-01 01:01:06.000 |           6 |
     2023-08-01 01:01:07.000 |           7 |
     2023-08-01 01:01:08.000 |           8 |
     2023-08-01 01:01:09.000 |           9 |
     2023-08-01 01:01:10.000 |          10 |
     2023-08-01 01:01:11.000 | NULL        |
     2023-08-01 01:01:12.000 |          10 |
     2023-08-01 01:01:13.000 |          -2 |
    
    > select _wstart,twa(v1) from t7 interval(1s);
             _wstart         |          twa(v1)          |
    ======================================================
     2023-08-01 01:01:00.000 |         0.000000000000000 |
     2023-08-01 01:01:01.000 |         1.499500000000000 |
     2023-08-01 01:01:02.000 |         2.499500000000000 |
     2023-08-01 01:01:03.000 |         3.499500000000000 |
     2023-08-01 01:01:04.000 |         4.499499999999999 |
     2023-08-01 01:01:05.000 |         5.499499999999999 |
     2023-08-01 01:01:06.000 |         6.499499999999999 |
     2023-08-01 01:01:07.000 |         7.499499999999999 |
     2023-08-01 01:01:08.000 |         8.499500000000001 |
     2023-08-01 01:01:09.000 |         9.499500000000001 |
     2023-08-01 01:01:10.000 |         5.005000000000000 |
     2023-08-01 01:01:11.000 |         0.000000000000000 |
     2023-08-01 01:01:12.000 |         4.006000976562500 |
     2023-08-01 01:01:13.000 |        -2.000000000000000 |
    
    > select _wstart,twa(v1) from t7 interval(2s);
             _wstart         |          twa(v1)          |
    ======================================================
     2023-08-01 01:01:00.000 |         1.499500000000000 |
     2023-08-01 01:01:02.000 |         2.999500000000000 |
     2023-08-01 01:01:04.000 |         4.999499999999999 |
     2023-08-01 01:01:06.000 |         6.999499999999999 |
     2023-08-01 01:01:08.000 |         8.999500000000001 |
     2023-08-01 01:01:10.000 |         9.995000000000001 |
     2023-08-01 01:01:12.000 |         3.999999511718750 |
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    第九章(1):循环神经网络与pytorch示例(RNN实现股价预测)
    GPT版本通俗简单介绍
    大润发超市购物卡怎么用?
    十分钟学会微调大语言模型
    前端打包工具
    一类恒等式的应用(范德蒙德卷积与超几何函数)
    Hadoop3:MapReduce的序列化和反序列化
    【小沐学Python】Python实现在线电子书(MkDocs + readthedocs + github + Markdown)
    WORDPRESS 和 ELEMENTOR 一样吗?不同点在哪里?
    【算法设计与分析】— —实现最优载的贪心算法
  • 原文地址:https://blog.csdn.net/weixin_43700866/article/details/132603568