
# 函数
当前系统内置了如下函数。
表1函数列表 
| 函数名称                                                                                | 函数分类 | 函数功能                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 举例                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| Sum(\[...\])                                                                        | 数学   | 求数组的总和值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Sum(\[1,2,3\])，结果为6                                                                                                                                                                                                                              |
| Avg(\[...\])                                                                        | 数学   | 求数组的平均值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Avg(\[1,2,3\])，结果为2                                                                                                                                                                                                                              |
| Min(\[...\])                                                                        | 数学   | 求数组的最小值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Min(\[1,2,3\])，结果为1                                                                                                                                                                                                                              |
| Max(\[...\])                                                                        | 数学   | 求数组的最大值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Max(\[1,2,3\])，结果为3                                                                                                                                                                                                                              |
| Len(\[...\])                                                                        | 通用   | 求数组的长度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Len(\[1,2,3,4\])，结果为4                                                                                                                                                                                                                            |
| Get(json, key)                                                                      | 通用   | 获取Json内容里面key对应的值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Get('{"age":30, "name":"ironman"}', "name")，结果为"ironman"                                                                                                                                                                                         |
| If(condition, ifTrue, ifFalse)                                                      | 通用   | 用于分支判断 当condition为true时，返回ifTrue的值，否则返回ifFalse的值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | If(1\<2, 'good', 'bad')，结果为'good' If(a\>b, 'yes', 'no')，则当a\>b时返回 'yes', 否则返回'no' If可以嵌套使用。如If(a\>b, If(a-b\>2, a-b, a+b), If(a\<=b, a\*b, a/b)) |
| Exit()                                                                              | 通用   | 退出分析任务，一般和If结合使用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | If(a\<0,exit(),'ok')                                                                                                                                                                                                                             |
| UUID()                                                                              | 通用   | 生成一个UUID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | UUID()                                                                                                                                                                                                                                           |
| EventTime()                                                                         | 通用   | 获取触发分析任务的时间，入参变化的时间或者定时任务时间，非运行分析任务的系统时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | EventTime()                                                                                                                                                                                                                                      |
| GetAssetId(modelName,staticPropertyName,staticPropertyValue)                        | 通用   | 获取资产ID，根据模型名称、静态属性名称、静态属性值获取资产ID，只能获取分析任务所在资产树以内的资产ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | GetAssetId('modelName','staticPropertyA','staticValue')                                                                                                                                                                                          |
| GetLastValue(assetId,propertyName,default)                                          | 通用   | 获取资产属性在分析任务触发之前的上一次值。注意，由于上一次的值可能还未入库，不建议应用在非常频繁变化的属性上                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | GetLastValue('assetId1','propertyA')                                                                                                                                                                                                             |
| GetLastValueEq(assetId,tagPropertyName,tagPropertyValue,targetPropertyName,default) | 通用   | 获取资产属性在分析任务触发之前的上一次值，并且会根据标签属性和标签属性值对同时刻的目标属性进行过滤。注意，由于上一次的值可能还未入库，不建议应用在变化非常频繁的属性上                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | GetLastValueEq('assetId1','tagPropertyA','tagPropertyAValue','propertyB')                                                                                                                                                                        |
| GetValues(assetId,targetPropertyName,tags,default,from,to,limit)                    | 通用   | 获取资产属性的多个历史值，返回值数组，支持标签过滤，支持返回默认值，支持设置开始和结束时间，支持限定条数。参数： assetId：string类型，目标资产ID，必填 targetPropertyName：string类型，目标属性名称，必填 tags：object类型，过滤的标签，最多支持3个，如果无则填写为{}，多个标签之间是与的关系，必填 default：object类型，默认值，必填 from：long\|string类型，开始时间，可以填写为long类型的毫秒，也可以填写为string类型的时间，格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'，支持填写为""表示不指定开始时间，必填 to：long\|string类型，结束时间，可以填写为long类型的毫秒，也可以填写为string类型的时间，格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'，支持填写为""表示分析任务触发时间，必填 limit：integer类型，返回条数，范围为(0,20\]，必填  | GetValues('assetId1','propertyA',{'tagPropertyB':123},-1,EventTime()-3600000,EventTime(),5)                                                                                                                                                      |
| GetByIndex(json,index)                                                              | 通用   | 根据数组下标获取数组元素                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | GetByIndex(\["a","b"\],1)                                                                                                                                                                                                                        |
| StateTime(property, state)                                                          | 时序聚合 | 求周期内状态的持续时长，单位为毫秒                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | StateTime(status, 'on')，结果为周期内status的值为on的总持续时间                                                                                                                                                                                                  |
| TS_Sum(property)                                                                    | 时序聚合 | 求周期内某个属性的总和值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | TS_Sum(qps)，结果为周期内的总qps值。                                                                                                                                                                                                                        |
| sin                                                                                 | 数学   | 求弧度的sin值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | sin(3.14/2) = 0.9999996829318346                                                                                                                                                                                                                 |
| cos                                                                                 | 数学   | 求弧度的cos值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | cos(3.14) = -0.9999987317275395                                                                                                                                                                                                                  |
| tan                                                                                 | 数学   | 求弧度的tan值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | tan(3.14/4) = 0.9992039901050427                                                                                                                                                                                                                 |
| asin                                                                                | 数学   | 求输入值的asin值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | asin(1) = 1.5707963267948966                                                                                                                                                                                                                     |
| acos                                                                                | 数学   | 求输入值的acos值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | acos(-1) = 3.141592653589793                                                                                                                                                                                                                     |
| atan                                                                                | 数学   | 求输入值的atan值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | atan(1) = 0.7853981633974483                                                                                                                                                                                                                     |
| sqrt                                                                                | 数学   | 求输入值的平方根                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | sqrt(2) = 1.4142135623730951，sqrt(4) = 2.0                                                                                                                                                                                                       |
| ceil                                                                                | 数学   | 求大于等于输入值的最小整数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | ceil(3.8) = 4.0，ceil(-1.2) = -1.0，ceil(0) = 0.0                                                                                                                                                                                                  |
| floor                                                                               | 数学   | 求小于等于输入值的最大整数                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | floor(3.8)=3, floor(-1.2)=-2，floor(0) = 0.0                                                                                                                                                                                                      |
| abs                                                                                 | 数学   | 求输入值的绝对值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | abs(1.23) = 1.23, abs(-1.23) = 1.23                                                                                                                                                                                                              |
| log                                                                                 | 数学   | 求输入值的自然对数值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | log(2.718) = 0.999896315728952                                                                                                                                                                                                                   |
| log10                                                                               | 数学   | 求输入值以10为底的对数值                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | log(100) = 2.0                                                                                                                                                                                                                                   |
   
说明
- 只有当分析任务类型为"聚合计算"时，计算公式中才能使用"时序聚合"类函数
 
