You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by le...@apache.org on 2023/07/26 12:30:38 UTC

[iotdb-docs] branch rl updated: finish Operators-Functions Overview

This is an automated email from the ASF dual-hosted git repository.

leirui pushed a commit to branch rl
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git


The following commit(s) were added to refs/heads/rl by this push:
     new 094a456  finish Operators-Functions Overview
094a456 is described below

commit 094a456bd897d172ee04b8d9a6f9f1e7b769f445
Author: Lei Rui <10...@qq.com>
AuthorDate: Wed Jul 26 20:30:23 2023 +0800

    finish Operators-Functions Overview
---
 .../Master/Operators-Functions/Conditional.md      |  36 +++----
 .../Master/Operators-Functions/Overview.md         |   8 ++
 .../Master/Operators-Functions/Conditional.md      |  40 ++++---
 .../Master/Operators-Functions/Overview.md         | 117 +++++++++++----------
 .../Master/Operators-Functions/Variation-Trend.md  |  19 ++--
 5 files changed, 111 insertions(+), 109 deletions(-)

diff --git a/src/UserGuide/Master/Operators-Functions/Conditional.md b/src/UserGuide/Master/Operators-Functions/Conditional.md
index 1e426c4..daa16ea 100644
--- a/src/UserGuide/Master/Operators-Functions/Conditional.md
+++ b/src/UserGuide/Master/Operators-Functions/Conditional.md
@@ -19,11 +19,9 @@
 
 -->
 
-## Conditional Expressions
+# Conditional Expressions
 
-### CASE
-
-#### Introduction
+## CASE
 
 The CASE expression is a kind of conditional expression that can be used to return different values based on specific conditions, similar to the if-else statements in other languages.
 
@@ -38,7 +36,7 @@ The CASE expression is a scalar operation that can be used in combination with a
 
 In the following text, all THEN parts and ELSE clauses will be collectively referred to as result clauses.
 
-#### Syntax
+### Syntax
 
 The CASE expression supports two formats.
 
@@ -80,7 +78,7 @@ If none of the conditions are true, or if none of the `whenValue`s match the `ca
 
 If there is no ELSE clause, `null` will be returned.
 
-#### Notes
+### Notes
 
 - In format 1, all WHEN clauses must return a BOOLEAN type.
 - In format 2, all WHEN clauses must be able to be compared to the CASE clause.
@@ -94,9 +92,9 @@ If there is no ELSE clause, `null` will be returned.
 - Aggregate functions cannot be used within a CASE expression, but the result of a CASE expression can be used as input for an aggregate function.
 - When using the CLI, because the CASE expression string can be lengthy, it is recommended to provide an alias for the expression using AS.
 
-#### Using Examples
+### Using Examples
 
-##### Example 1
+#### Example 1
 
 The CASE expression can be used to analyze data in a visual way. For example:
 - The preparation of a certain chemical product requires that the temperature and pressure be within specific ranges.
@@ -142,7 +140,7 @@ output:
 ```
 
 
-##### Example 2
+#### Example 2
 
 The CASE expression can achieve flexible result transformation, such as converting strings with a certain pattern to other strings.
 
@@ -178,9 +176,9 @@ output:
 +-----------------------------+--------------+------------+
 ```
 
-##### Example 3: work with aggregation functions
+#### Example 3: work with aggregation functions
 
-###### valid: aggregation function ← CASE expression
+##### Valid: aggregation function ← CASE expression
 
 The CASE expression can be used as a parameter for aggregate functions. For example, used in conjunction with the COUNT function, it can implement statistics based on multiple conditions simultaneously.
 
@@ -223,7 +221,7 @@ output:
 +------+-----+-----+------+
 ```
 
-###### invalid: CASE expression ← aggregation function 
+##### Invalid: CASE expression ← aggregation function 
 
 Using aggregation function in CASE expression is not supported
 
@@ -237,7 +235,7 @@ output:
 Msg: 701: Raw data and aggregation result hybrid calculation is not supported.
 ```
 
-##### Example 4: kind 2
+#### Example 4: kind 2
 
 Here is a simple example that uses the format 2 syntax. 
 If all conditions are equality tests, it is recommended to use format 2 to simplify SQL statements.
@@ -272,13 +270,13 @@ output:
 +-----------------------------+------------+-----------------------------------------------------------------------------------+
 ```
 
-##### Example 5: type of return clauses
+#### Example 5: type of return clauses
 
 The result clause of a CASE expression needs to satisfy certain type restrictions.
 
 In this example, we continue to use the data from Example 4.
 
-###### Invalid: BOOLEAN cannot coexist with other types
+##### Invalid: BOOLEAN cannot coexist with other types
 
 SQL statements:
 ```sql
@@ -290,7 +288,7 @@ output:
 Msg: 701: CASE expression: BOOLEAN and other types cannot exist at same time
 ```
 
-###### Valid: Only BOOLEAN type exists
+##### Valid: Only BOOLEAN type exists
 
 SQL statements:
 ```sql
@@ -309,7 +307,7 @@ output:
 +-----------------------------+------------+------+
 ```
 
-###### Invalid:TEXT cannot coexist with other types
+##### Invalid:TEXT cannot coexist with other types
 
 SQL statements:
 ```sql
@@ -321,11 +319,11 @@ output:
 Msg: 701: CASE expression: TEXT and other types cannot exist at same time
 ```
 
-###### Valid: Only TEXT type exists
+##### Valid: Only TEXT type exists
 
 See in Example 1.
 
-###### Valid: Numerical types coexist
+##### Valid: Numerical types coexist
 
 SQL statements:
 ```sql
diff --git a/src/UserGuide/Master/Operators-Functions/Overview.md b/src/UserGuide/Master/Operators-Functions/Overview.md
index d0eb4ce..40b662c 100644
--- a/src/UserGuide/Master/Operators-Functions/Overview.md
+++ b/src/UserGuide/Master/Operators-Functions/Overview.md
@@ -236,6 +236,14 @@ For details and examples, see the document [Variation Trend Calculation Function
 
 For details and examples, see the document [Sample Functions](./Sample.md).
 
+## Conditional Expressions
+
+| Expression Name | Description          |
+| --------------- | -------------------- |
+| `CASE`          | similar to "if else" |
+
+For details and examples, see the document [Conditional Expressions](./Conditional.md).
+
 ## Data Quality Function Library
 
 ### About
diff --git a/src/zh/UserGuide/Master/Operators-Functions/Conditional.md b/src/zh/UserGuide/Master/Operators-Functions/Conditional.md
index abeb262..0d1508c 100644
--- a/src/zh/UserGuide/Master/Operators-Functions/Conditional.md
+++ b/src/zh/UserGuide/Master/Operators-Functions/Conditional.md
@@ -19,11 +19,9 @@
 
 -->
 
-## 条件表达式
+# 条件表达式
 
-### CASE
-
-#### 介绍
+## CASE
 
 CASE表达式是一种条件表达式,可用于根据特定条件返回不同的值,功能类似于其它语言中的if-else。
 CASE表达式由以下部分组成:
@@ -33,10 +31,10 @@ CASE表达式由以下部分组成:
 - END关键字:表示结束CASE表达式。
 
 CASE表达式是一种标量运算,可以配合任何其它的标量运算或聚合函数使用。
-  
+
 下文把所有THEN部分和ELSE子句并称为结果子句。
 
-#### 语法示例
+### 语法示例
 
 CASE表达式支持两种格式。
 
@@ -76,7 +74,7 @@ CASE表达式支持两种格式。
 
 如果格式1中的condition均不为真,或格式2中均不满足caseVaule=whenValue,则返回ELSE子句中的expression_end;不存在ELSE子句则返回null。
 
-#### 注意事项
+### 注意事项
 
 - 格式1中,所有WHEN子句必须返回BOOLEAN类型。
 - 格式2中,所有WHEN子句必须能够与CASE子句进行判等。
@@ -89,9 +87,9 @@ CASE表达式支持两种格式。
 - CASE表达式内部不能存在聚合函数,但CASE表达式的结果可以提供给聚合函数。
 - 使用CLI时,由于CASE表达式字符串较长,推荐用as为表达式提供别名。
 
-#### 使用示例
+### 使用示例
 
-##### 示例1
+#### 示例1
 
 CASE表达式可对数据进行直观地分析,例如:
 
@@ -99,7 +97,7 @@ CASE表达式可对数据进行直观地分析,例如:
 - 在制备过程中传感器会侦测温度和压力,在iotdb中形成T(temperature)和P(pressure)两个时间序列
 
 这种应用场景下,CASE表达式可以指出哪些时间的参数是合适的,哪些时间的参数不合适,以及为什么不合适。
-  
+
 数据:
 ```sql
 IoTDB> select * from root.test1
@@ -139,7 +137,7 @@ from root.test1
 ```
 
 
-##### 示例2
+#### 示例2
 
 CASE表达式可实现结果的自由转换,例如将具有某种模式的字符串转换成另一种字符串。
 
@@ -175,9 +173,9 @@ from root.test2
 +-----------------------------+--------------+------------+
 ```
 
-##### 示例3:搭配聚合函数
+#### 示例3:搭配聚合函数
 
-###### 合法:聚合函数←CASE表达式
+##### 合法:聚合函数←CASE表达式
 
 CASE表达式可作为聚合函数的参数。例如,与聚合函数COUNT搭配,可实现同时按多个条件进行数据统计。
 
@@ -220,7 +218,7 @@ from root.test3
 +------+-----+-----+------+
 ```
 
-###### 非法:CASE表达式←聚合函数
+##### 非法:CASE表达式←聚合函数
 
 不支持在CASE表达式内部使用聚合函数。
 
@@ -234,7 +232,7 @@ select case when x<=1 then avg(x) else sum(x) end from root.test3
 Msg: 701: Raw data and aggregation result hybrid calculation is not supported.
 ```
 
-##### 示例4:格式2
+#### 示例4:格式2
 
 一个使用格式2的简单例子。如果所有条件都为判等,则推荐使用格式2,以简化SQL语句。
 
@@ -268,13 +266,13 @@ select x, case x when 1 then "one" when 2 then "two" else "other" end from root.
 +-----------------------------+------------+-----------------------------------------------------------------------------------+
 ```
 
-##### 示例5:结果子句类型
+#### 示例5:结果子句类型
 
 CASE表达式的结果子句的返回值需要满足一定的类型限制。
 
 此示例中,继续使用示例4中的数据。
 
-###### 非法:BOOLEAN与其它类型共存
+##### 非法:BOOLEAN与其它类型共存
 
 SQL语句:
 ```sql
@@ -286,7 +284,7 @@ select x, case x when 1 then true when 2 then 2 end from root.test4
 Msg: 701: CASE expression: BOOLEAN and other types cannot exist at same time
 ```
 
-###### 合法:只存在BOOLEAN类型
+##### 合法:只存在BOOLEAN类型
 
 SQL语句:
 ```sql
@@ -305,7 +303,7 @@ select x, case x when 1 then true when 2 then false end as `result` from root.te
 +-----------------------------+------------+------+
 ```
 
-###### 非法:TEXT与其它类型共存
+##### 非法:TEXT与其它类型共存
 
 SQL语句:
 ```sql
@@ -317,11 +315,11 @@ select x, case x when 1 then 1 when 2 then "str" end from root.test4
 Msg: 701: CASE expression: TEXT and other types cannot exist at same time
 ```
 
-###### 合法:只存在TEXT类型
+##### 合法:只存在TEXT类型
 
 见示例1。
 
-###### 合法:数值类型共存
+##### 合法:数值类型共存
 
 SQL语句:
 ```sql
diff --git a/src/zh/UserGuide/Master/Operators-Functions/Overview.md b/src/zh/UserGuide/Master/Operators-Functions/Overview.md
index 7ed28cd..50d9a91 100644
--- a/src/zh/UserGuide/Master/Operators-Functions/Overview.md
+++ b/src/zh/UserGuide/Master/Operators-Functions/Overview.md
@@ -95,55 +95,58 @@ OR, |, ||
 
 ### 聚合函数
 
-| 函数名      | 功能描述                                                     | 允许的输入类型           | 输出类型       |
-| ----------- | ------------------------------------------------------------ | ------------------------ | -------------- |
-| SUM         | 求和。                                                       | INT32 INT64 FLOAT DOUBLE | DOUBLE         |
-| COUNT       | 计算数据点数。                                               | 所有类型                 | INT            |
-| AVG         | 求平均值。                                                   | INT32 INT64 FLOAT DOUBLE | DOUBLE         |
-| EXTREME     | 求具有最大绝对值的值。如果正值和负值的最大绝对值相等,则返回正值。 | INT32 INT64 FLOAT DOUBLE | 与输入类型一致 |
-| MAX_VALUE   | 求最大值。                                                   | INT32 INT64 FLOAT DOUBLE | 与输入类型一致 |
-| MIN_VALUE   | 求最小值。                                                   | INT32 INT64 FLOAT DOUBLE | 与输入类型一致 |
-| FIRST_VALUE | 求时间戳最小的值。                                           | 所有类型                 | 与输入类型一致 |
-| LAST_VALUE  | 求时间戳最大的值。                                           | 所有类型                 | 与输入类型一致 |
-| MAX_TIME    | 求最大时间戳。                                               | 所有类型                 | Timestamp      |
-| MIN_TIME    | 求最小时间戳。                                               | 所有类型                 | Timestamp      |
+| 函数名        | 功能描述                                                     | 允许的输入类型           | 必要的属性参数                                               | 输出类型       |
+| ------------- | ------------------------------------------------------------ | ------------------------ | ------------------------------------------------------------ | -------------- |
+| SUM           | 求和。                                                       | INT32 INT64 FLOAT DOUBLE | 无                                                           | DOUBLE         |
+| COUNT         | 计算数据点数。                                               | 所有类型                 | 无                                                           | INT64          |
+| AVG           | 求平均值。                                                   | INT32 INT64 FLOAT DOUBLE | 无                                                           | DOUBLE         |
+| EXTREME       | 求具有最大绝对值的值。如果正值和负值的最大绝对值相等,则返回正值。 | INT32 INT64 FLOAT DOUBLE | 无                                                           | 与输入类型一致 |
+| MAX_VALUE     | 求最大值。                                                   | INT32 INT64 FLOAT DOUBLE | 无                                                           | 与输入类型一致 |
+| MIN_VALUE     | 求最小值。                                                   | INT32 INT64 FLOAT DOUBLE | 无                                                           | 与输入类型一致 |
+| FIRST_VALUE   | 求时间戳最小的值。                                           | 所有类型                 | 无                                                           | 与输入类型一致 |
+| LAST_VALUE    | 求时间戳最大的值。                                           | 所有类型                 | 无                                                           | 与输入类型一致 |
+| MAX_TIME      | 求最大时间戳。                                               | 所有类型                 | 无                                                           | Timestamp      |
+| MIN_TIME      | 求最小时间戳。                                               | 所有类型                 | 无                                                           | Timestamp      |
+| COUNT_IF      | 求数据点连续满足某一给定条件,且满足条件的数据点个数(用keep表示)满足指定阈值的次数。 | BOOLEAN                  | `[keep >=/>/=/!=/</<=]threshold`:被指定的阈值或阈值条件,若只使用`threshold`则等价于`keep >= threshold`,`threshold`类型为`INT64`  `ignoreNull`:可选,默认为`true`;为`true`表示忽略null值,即如果中间出现null值,直接忽略,不会打断连续性;为`false`表示不忽略null值,即如果中间出现null值,会打断连续性 | INT64          |
+| TIME_DURATION | 求某一列最大一个不为NULL的值所在时间戳与最小一个不为NULL的值所在时间戳的时间戳差 | 所有类型                 | 无                                                           | INT64          |
+| MODE          | 求众数。注意: 1.输入序列的不同值个数过多时会有内存异常风险;  2.如果所有元素出现的频次相同,即没有众数,则返回对应时间戳最小的值;  3.如果有多个众数,则返回对应时间戳最小的众数。 | 所有类型                 | 无                                                           | 与输入类型一致 |
 
 详细说明及示例见文档 [聚合函数](./Aggregation.md)。
 
 ### 数学函数 
 
-| 函数名  | 输入序列类型                   | 输出序列类型             | 必要属性参数                                       | Java 标准库中的对应实现                                                    |
-| ------- | ------------------------------ | ------------------------ |----------------------------------------------|-------------------------------------------------------------------|
-| SIN     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#sin(double)                                                  |
-| COS     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#cos(double)                                                  |
-| TAN     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#tan(double)                                                  |
-| ASIN    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#asin(double)                                                 |
-| ACOS    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#acos(double)                                                 |
-| ATAN    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#atan(double)                                                 |
-| SINH    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#sinh(double)                                                 |
-| COSH    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#cosh(double)                                                 |
-| TANH    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#tanh(double)                                                 |
-| DEGREES | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#toDegrees(double)                                            |
-| RADIANS | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#toRadians(double)                                            |
-| ABS     | INT32 / INT64 / FLOAT / DOUBLE | 与输入序列的实际类型一致 |                                              | Math#abs(int) / Math#abs(long) /Math#abs(float) /Math#abs(double) |
-| SIGN    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#signum(double)                                               |
-| CEIL    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#ceil(double)                                                 |
-| FLOOR   | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#floor(double)                                                |
-| ROUND   | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   | `places`:四舍五入有效位数,正数为小数点后面的有效位数,负数为整数位的有效位数 | Math#rint(Math#pow(10,places))/Math#pow(10,places)                         |
-| EXP     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#exp(double)                                                  |
-| LN      | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#log(double)                                                  |
-| LOG10   | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#log10(double)                                                |
-| SQRT    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                              | Math#sqrt(double)                                                 |
+| 函数名  | 输入序列类型                   | 输出序列类型             | 必要属性参数                                                 | Java 标准库中的对应实现                                      |
+| ------- | ------------------------------ | ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| SIN     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#sin(double)                                             |
+| COS     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#cos(double)                                             |
+| TAN     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#tan(double)                                             |
+| ASIN    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#asin(double)                                            |
+| ACOS    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#acos(double)                                            |
+| ATAN    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#atan(double)                                            |
+| SINH    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#sinh(double)                                            |
+| COSH    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#cosh(double)                                            |
+| TANH    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#tanh(double)                                            |
+| DEGREES | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#toDegrees(double)                                       |
+| RADIANS | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#toRadians(double)                                       |
+| ABS     | INT32 / INT64 / FLOAT / DOUBLE | 与输入序列的实际类型一致 |                                                              | Math#abs(int) / Math#abs(long) /Math#abs(float) /Math#abs(double) |
+| SIGN    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#signum(double)                                          |
+| CEIL    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#ceil(double)                                            |
+| FLOOR   | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#floor(double)                                           |
+| ROUND   | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   | `places`:四舍五入有效位数,正数为小数点后面的有效位数,负数为整数位的有效位数 | Math#rint(Math#pow(10,places))/Math#pow(10,places)           |
+| EXP     | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#exp(double)                                             |
+| LN      | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#log(double)                                             |
+| LOG10   | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#log10(double)                                           |
+| SQRT    | INT32 / INT64 / FLOAT / DOUBLE | DOUBLE                   |                                                              | Math#sqrt(double)                                            |
 
 
 详细说明及示例见文档 [算数运算符和函数](./Mathematical.md)。
 
 ### 比较函数
 
-| 函数名    | 可接收的输入序列类型                | 必要的属性参数                               | 输出序列类型     | 功能类型                                             |
-|----------|--------------------------------|---------------------------------------|------------|--------------------------------------------------|
-| ON_OFF   | INT32 / INT64 / FLOAT / DOUBLE | `threshold`:DOUBLE                  | BOOLEAN | 返回`ts_value >= threshold`的bool值                  |
-| IN_RANGE | INT32 / INT64 / FLOAT / DOUBLE | `lower`:DOUBLE<br/>`upper`:DOUBLE | BOOLEAN | 返回`ts_value >= lower && ts_value <= upper`的bool值 |                                                    |
+| 函数名   | 可接收的输入序列类型           | 必要的属性参数                        | 输出序列类型 | 功能类型                                             |
+| -------- | ------------------------------ | ------------------------------------- | ------------ | ---------------------------------------------------- |
+| ON_OFF   | INT32 / INT64 / FLOAT / DOUBLE | `threshold`:DOUBLE类型                | BOOLEAN 类型 | 返回`ts_value >= threshold`的bool值                  |
+| IN_RANGE | INT32 / INT64 / FLOAT / DOUBLE | `lower`:DOUBLE类型 `upper`:DOUBLE类型 | BOOLEAN类型  | 返回`ts_value >= lower && ts_value <= upper`的bool值 |
 
 详细说明及示例见文档 [比较运算符和函数](./Comparison.md)。
 
@@ -179,7 +182,7 @@ OR, |, ||
 
 | 函数名 | 必要的属性参数                                               | 输出序列类型               | 功能描述                                                     |
 | ------ | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------ |
-| CONST  | `value`: 输出的数据点的值 <br />`type`: 输出的数据点的类型,只能是 INT32 / INT64 / FLOAT / DOUBLE / BOOLEAN / TEXT | 由输入属性参数 `type` 决定 | 根据输入属性 `value` 和 `type` 输出用户指定的常序列。        |
+| CONST  | `value`: 输出的数据点的值  `type`: 输出的数据点的类型,只能是 INT32 / INT64 / FLOAT / DOUBLE / BOOLEAN / TEXT | 由输入属性参数 `type` 决定 | 根据输入属性 `value` 和 `type` 输出用户指定的常序列。        |
 | PI     | 无                                                           | DOUBLE                     | 常序列的值:`π` 的 `double` 值,圆的周长与其直径的比值,即圆周率,等于 *Java标准库* 中的`Math.PI`。 |
 | E      | 无                                                           | DOUBLE                     | 常序列的值:`e` 的 `double` 值,自然对数的底,它等于 *Java 标准库*  中的 `Math.E`。 |
 
@@ -196,29 +199,25 @@ OR, |, ||
 
 ### 区间查询函数
 
-| 函数名               | 输入序列类型                               | 属性参数                                           | 输出序列类型 | 功能描述                                                             |
-|-------------------|--------------------------------------|------------------------------------------------|-------|------------------------------------------------------------------|
-| ZERO_DURATION     | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值0<br>`max`:可选,默认值`Long.MAX_VALUE` | Long  | 返回时间序列连续为0(false)的开始时间与持续时间,持续时间t(单位ms)满足`t >= min && t <= max`  |
-| NON_ZERO_DURATION | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值0<br>`max`:可选,默认值`Long.MAX_VALUE` | Long  | 返回时间序列连续不为0(false)的开始时间与持续时间,持续时间t(单位ms)满足`t >= min && t <= max` |               |
-| ZERO_COUNT        | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值1<br>`max`:可选,默认值`Long.MAX_VALUE` | Long  | 返回时间序列连续为0(false)的开始时间与其后数据点的个数,数据点个数n满足`n >= min && n <= max`   |               |
-| NON_ZERO_COUNT    | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值1<br>`max`:可选,默认值`Long.MAX_VALUE` | Long  | 返回时间序列连续不为0(false)的开始时间与其后数据点的个数,数据点个数n满足`n >= min && n <= max`  |               |
+| 函数名            | 输入序列类型                         | 属性参数                                               | 输出序列类型 | 功能描述                                                     |
+| ----------------- | ------------------------------------ | ------------------------------------------------------ | ------------ | ------------------------------------------------------------ |
+| ZERO_DURATION     | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值0 `max`:可选,默认值`Long.MAX_VALUE` | Long         | 返回时间序列连续为0(false)的开始时间与持续时间,持续时间t(单位ms)满足`t >= min && t <= max` |
+| NON_ZERO_DURATION | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值0 `max`:可选,默认值`Long.MAX_VALUE` | Long         | 返回时间序列连续不为0(false)的开始时间与持续时间,持续时间t(单位ms)满足`t >= min && t <= max` |
+| ZERO_COUNT        | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值1 `max`:可选,默认值`Long.MAX_VALUE` | Long         | 返回时间序列连续为0(false)的开始时间与其后数据点的个数,数据点个数n满足`n >= min && n <= max` |
+| NON_ZERO_COUNT    | INT32/ INT64/ FLOAT/ DOUBLE/ BOOLEAN | `min`:可选,默认值1 `max`:可选,默认值`Long.MAX_VALUE` | Long         | 返回时间序列连续不为0(false)的开始时间与其后数据点的个数,数据点个数n满足`n >= min && n <= max` |
 
 详细说明及示例见文档 [区间查询函数](./Continuous-Interval.md)。
 
 ### 趋势计算函数
 
-| 函数名                  | 输入序列类型                                    | 输出序列类型             | 功能描述                                                     |
-| ----------------------- | ----------------------------------------------- | ------------------------ | ------------------------------------------------------------ |
-| TIME_DIFFERENCE         | INT32 / INT64 / FLOAT / DOUBLE / BOOLEAN / TEXT | INT64                    | 统计序列中某数据点的时间戳与前一数据点时间戳的差。范围内第一个数据点没有对应的结果输出。 |
-| DIFFERENCE              | INT32 / INT64 / FLOAT / DOUBLE                  | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差。范围内第一个数据点没有对应的结果输出。 |
-| NON_NEGATIVE_DIFFERENCE | INT32 / INT64 / FLOAT / DOUBLE                  | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差的绝对值。范围内第一个数据点没有对应的结果输出。 |
-| DERIVATIVE              | INT32 / INT64 / FLOAT / DOUBLE                  | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率,数量上等同于 DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
-| NON_NEGATIVE_DERIVATIVE | INT32 / INT64 / FLOAT / DOUBLE                  | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率的绝对值,数量上等同于 NON_NEGATIVE_DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
-
-
-| 函数名  | 输入序列类型                         | 参数                                                                                                                     | 输出序列类型 | 功能描述                                           |
-|------|--------------------------------|------------------------------------------------------------------------------------------------------------------------|--------|------------------------------------------------|
-| DIFF | INT32 / INT64 / FLOAT / DOUBLE | `ignoreNull`:可选,默认为true;为true时,前一个数据点值为null时,忽略该数据点继续向前找到第一个出现的不为null的值;为false时,如果前一个数据点为null,则不忽略,使用null进行相减,结果也为null | DOUBLE | 统计序列中某数据点的值与前一数据点的值的差。第一个数据点没有对应的结果输出,输出值为null |
+| 函数名                  | 输入序列类型                                    | 属性参数                                                     | 输出序列类型             | 功能描述                                                     |
+| ----------------------- | ----------------------------------------------- | ------------------------------------------------------------ | ------------------------ | ------------------------------------------------------------ |
+| TIME_DIFFERENCE         | INT32 / INT64 / FLOAT / DOUBLE / BOOLEAN / TEXT | 无                                                           | INT64                    | 统计序列中某数据点的时间戳与前一数据点时间戳的差。范围内第一个数据点没有对应的结果输出。 |
+| DIFFERENCE              | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差。范围内第一个数据点没有对应的结果输出。 |
+| NON_NEGATIVE_DIFFERENCE | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差的绝对值。范围内第一个数据点没有对应的结果输出。 |
+| DERIVATIVE              | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率,数量上等同于 DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
+| NON_NEGATIVE_DERIVATIVE | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率的绝对值,数量上等同于 NON_NEGATIVE_DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
+| DIFF                    | INT32 / INT64 / FLOAT / DOUBLE                  | `ignoreNull`:可选,默认为true;为true时,前一个数据点值为null时,忽略该数据点继续向前找到第一个出现的不为null的值;为false时,如果前一个数据点为null,则不忽略,使用null进行相减,结果也为null | DOUBLE                   | 统计序列中某数据点的值与前一数据点的值的差。第一个数据点没有对应的结果输出,输出值为null |
 
 详细说明及示例见文档 [趋势计算函数](./Variation-Trend.md)。
 
@@ -232,13 +231,15 @@ OR, |, ||
 | EQUAL_SIZE_BUCKET_OUTLIER_SAMPLE   | INT32 / INT64 / FLOAT / DOUBLE | `proportion`取值范围为`(0, 1]`,默认为`0.1`<br>`type`取值为`avg`或`stendis`或`cos`或`prenextdis`,默认为`avg`<br>`number`取值应大于0,默认`3`| INT32 / INT64 / FLOAT / DOUBLE | 返回符合采样比例和桶内采样个数的等分桶离群值采样                |
 | M4     | INT32 / INT64 / FLOAT / DOUBLE | 包含固定点数的窗口和滑动时间窗口使用不同的属性参数。包含固定点数的窗口使用属性`windowSize`和`slidingStep`。滑动时间窗口使用属性`timeInterval`、`slidingStep`、`displayWindowBegin`和`displayWindowEnd`。更多细节见下文。 | INT32 / INT64 / FLOAT / DOUBLE | 返回每个窗口内的第一个点(`first`)、最后一个点(`last`)、最小值点(`bottom`)、最大值点(`top`)。在一个窗口内的聚合点输出之前,M4会将它们按照时间戳递增排序并且去重。 |
 
+详细说明及示例见文档 [采样函数](./Sample.md)。
+
 ## 条件表达式
 
 | 表达式名称                     | 含义        |
 |---------------------------|-----------|
 | `CASE` | 类似if else |
 
-详细说明及示例见文档 [条件表达式](./Conditional.md)
+详细说明及示例见文档 [条件表达式](./Conditional.md)。
 
 ## 数据质量函数库
 
diff --git a/src/zh/UserGuide/Master/Operators-Functions/Variation-Trend.md b/src/zh/UserGuide/Master/Operators-Functions/Variation-Trend.md
index 8b8d632..fc5c249 100644
--- a/src/zh/UserGuide/Master/Operators-Functions/Variation-Trend.md
+++ b/src/zh/UserGuide/Master/Operators-Functions/Variation-Trend.md
@@ -23,13 +23,14 @@
 
 目前 IoTDB 支持如下趋势计算函数:
 
-| 函数名                  | 输入序列类型                                    | 输出序列类型             | 功能描述                                                     |
-| ----------------------- | ----------------------------------------------- | ------------------------ | ------------------------------------------------------------ |
-| TIME_DIFFERENCE         | INT32 / INT64 / FLOAT / DOUBLE / BOOLEAN / TEXT | INT64                    | 统计序列中某数据点的时间戳与前一数据点时间戳的差。范围内第一个数据点没有对应的结果输出。 |
-| DIFFERENCE              | INT32 / INT64 / FLOAT / DOUBLE                  | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差。范围内第一个数据点没有对应的结果输出。 |
-| NON_NEGATIVE_DIFFERENCE | INT32 / INT64 / FLOAT / DOUBLE                  | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差的绝对值。范围内第一个数据点没有对应的结果输出。 |
-| DERIVATIVE              | INT32 / INT64 / FLOAT / DOUBLE                  | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率,数量上等同于 DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
-| NON_NEGATIVE_DERIVATIVE | INT32 / INT64 / FLOAT / DOUBLE                  | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率的绝对值,数量上等同于 NON_NEGATIVE_DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
+| 函数名                  | 输入序列类型                                    | 属性参数                                                     | 输出序列类型             | 功能描述                                                     |
+| ----------------------- | ----------------------------------------------- | ------------------------------------------------------------ | ------------------------ | ------------------------------------------------------------ |
+| TIME_DIFFERENCE         | INT32 / INT64 / FLOAT / DOUBLE / BOOLEAN / TEXT | 无                                                           | INT64                    | 统计序列中某数据点的时间戳与前一数据点时间戳的差。范围内第一个数据点没有对应的结果输出。 |
+| DIFFERENCE              | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差。范围内第一个数据点没有对应的结果输出。 |
+| NON_NEGATIVE_DIFFERENCE | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | 与输入序列的实际类型一致 | 统计序列中某数据点的值与前一数据点的值的差的绝对值。范围内第一个数据点没有对应的结果输出。 |
+| DERIVATIVE              | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率,数量上等同于 DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
+| NON_NEGATIVE_DERIVATIVE | INT32 / INT64 / FLOAT / DOUBLE                  | 无                                                           | DOUBLE                   | 统计序列中某数据点相对于前一数据点的变化率的绝对值,数量上等同于 NON_NEGATIVE_DIFFERENCE /  TIME_DIFFERENCE。范围内第一个数据点没有对应的结果输出。 |
+| DIFF                    | INT32 / INT64 / FLOAT / DOUBLE                  | `ignoreNull`:可选,默认为true;为true时,前一个数据点值为null时,忽略该数据点继续向前找到第一个出现的不为null的值;为false时,如果前一个数据点为null,则不忽略,使用null进行相减,结果也为null | DOUBLE                   | 统计序列中某数据点的值与前一数据点的值的差。第一个数据点没有对应的结果输出,输出值为null |
 
 例如:
 
@@ -53,10 +54,6 @@ Total line number = 5
 It costs 0.014s
 ```
 
-| 函数名  | 输入序列类型                         | 参数                                                                                                                     | 输出序列类型 | 功能描述                                           |
-|------|--------------------------------|------------------------------------------------------------------------------------------------------------------------|--------|------------------------------------------------|
-| DIFF | INT32 / INT64 / FLOAT / DOUBLE | `ignoreNull`:可选,默认为true;为true时,前一个数据点值为null时,忽略该数据点继续向前找到第一个出现的不为null的值;为false时,如果前一个数据点为null,则不忽略,使用null进行相减,结果也为null | DOUBLE | 统计序列中某数据点的值与前一数据点的值的差。第一个数据点没有对应的结果输出,输出值为null |
-
 #### 使用示例
 
 ##### 原始数据