You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2022/11/02 09:00:10 UTC

[iotdb] branch lmh/docUpdate created (now fe1c229d1f)

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

hui pushed a change to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at fe1c229d1f update Select-Into

This branch includes the following new commits:

     new c87ae422c0 update query overview
     new dfb7d1d61e delete Tracing-Tool & Without-Null in user guide
     new 0c250dfb6e update Fill-Null-Value
     new 0c37b72157 update Last-Query
     new 47cafef4fd update Select-Expression
     new bbba3030e0 update Query-Filter
     new 251491955d update Pagination
     new de6df1cb8c update error code
     new fe1c229d1f update Select-Into

The 9 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 03/09: update Fill-Null-Value

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 0c250dfb6e3631d273d8b052ace525de8f1c3f9d
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:31:54 2022 +0800

    update Fill-Null-Value
---
 docs/UserGuide/Query-Data/Fill-Null-Value.md    | 116 ++++++++++----------
 docs/zh/UserGuide/Query-Data/Fill-Null-Value.md | 134 +++++++++++++-----------
 2 files changed, 137 insertions(+), 113 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Fill-Null-Value.md b/docs/UserGuide/Query-Data/Fill-Null-Value.md
index 088501ee73..32e619edc7 100644
--- a/docs/UserGuide/Query-Data/Fill-Null-Value.md
+++ b/docs/UserGuide/Query-Data/Fill-Null-Value.md
@@ -21,15 +21,33 @@
 
 # Fill Null Value
 
+## Introduction
+
 When executing some queries, there may be no data for some columns in some rows, and data in these locations will be null, but this kind of null value is not conducive to data visualization and analysis, and the null value needs to be filled.
 
-Fill null value allows the user to fill any query result with null values according to a specific method, such as taking the previous value that is not null, or linear interpolation. The query result after filling the null value can better reflect the data distribution, which is beneficial for users to perform data analysis.
+In IoTDB, users can use the FILL clause to specify the fill mode when data is missing. Fill null value allows the user to fill any query result with null values according to a specific method, such as taking the previous value that is not null, or linear interpolation. The query result after filling the null value can better reflect the data distribution, which is beneficial for users to perform data analysis.
+
+## Syntax Definition
 
-In IoTDB, users can use the FILL clause to specify the fill mode when data is missing. If the queried point's value is not null, the fill function will not work.
+**The following is the syntax definition of the `FILL` clause:**
+
+```sql
+FILL '(' PREVIOUS | LINEAR | constant ')'
+```
+
+**Note:** 
+- We can specify only one fill method in the `FILL` clause, and this method applies to all columns of the result set.
+- Null value fill is not compatible with version 0.13 and previous syntax (`FILL((<data_type>[<fill_method>(, <before_range>, <after_range>)?])+)`) is not supported anymore.
 
 ## Fill Methods
 
-IoTDB supports previous, linear, and value fill methods. Following table lists the data types and supported fill methods.
+**IoTDB supports the following three fill methods:**
+
+- `PREVIOUS`: Fill with the previous non-null value of the column.
+- `LINEAR`: Fill the column with a linear interpolation of the previous non-null value and the next non-null value of the column.
+- Constant: Fill with the specified constant.
+
+**Following table lists the data types and supported fill methods.**
 
 | Data Type | Supported Fill Methods  |
 | :-------- |:------------------------|
@@ -39,25 +57,18 @@ IoTDB supports previous, linear, and value fill methods. Following table lists t
 | float     | previous, linear, value |
 | double    | previous, linear, value |
 | text      | previous, value         |
-| </center> |                         |
-
-> Note: Only one Fill method can be specified in a Fill statement. Null value fill is not compatible with version 0.13 and previous syntax (fill((<data_type>[<fill_method>(, <before_range>, <after_range>)?])+)) is not supported anymore.
 
+**Note:**  For columns whose data type does not support specifying the fill method, we neither fill it nor throw exception, just keep it as it is.
 
-### Previous Fill
+**For examples:**
 
-When the value is null, the value of the previous timestamp is used to fill the blank. The formalized previous method is as follows:
+If we don't use any fill methods:
 
 ```sql
-fill(previous)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000;
 ```
 
-Here we give an example of filling null values using the previous method. The SQL statement is as follows:
-
-```sql
-select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000
-```
-if we don't use any fill methods, the original result will be like:
+the original result will be like:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -74,12 +85,19 @@ if we don't use any fill methods, the original result will be like:
 Total line number = 4
 ```
 
-if we use previous fill, sql will be like:
+### `PREVIOUS` Fill
+
+**For null values in the query result set, fill with the previous non-null value of the column.**
+
+**Note:** If the first value of this column is null, we will keep first value as null and won't fill it until we meet first non-null value
+
+For example, with `PREVIOUS` fill, the SQL is as follows:
+
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(previous)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(previous);
 ```
 
-previous filled result will be like:
+result will be like:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -96,23 +114,23 @@ previous filled result will be like:
 Total line number = 4
 ```
 
-> Note: If the first value of this column is null, we will keep first value as null and won't fill it until we meet first non-null value
+### `LINEAR` Fill
 
-### Linear Fill
+**For null values in the query result set, fill the column with a linear interpolation of the previous non-null value and the next non-null value of the column.**
 
-When the value in the queried timestamp is null, the value of the previous and the next timestamp is used to fill the blank. The formalized linear method is as follows:
-
-```sql
-fill(linear)
-```
+**Note:**
+- If all the values before current value are null or all the values after current value are null, we will keep current value as null and won't fill it.
+- If the column's data type is boolean/text, we neither fill it nor throw exception, just keep it as it is.
 
 Here we give an example of filling null values using the linear method. The SQL statement is as follows:
 
+For example, with `LINEAR` fill, the SQL is as follows:
+
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(linear)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(linear);
 ```
 
-linear filled result will be like:
+result will be like:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -129,25 +147,28 @@ linear filled result will be like:
 Total line number = 4
 ```
 
+### Constant Fill
 
-> Note: If all the values before current value are null or all the values after current value are null, we will keep current value as null and won't fill it.
-> Note: If the column's data type is boolean/text, we neither fill it nor throw exception, just keep it as it is.
+**For null values in the query result set, fill with the specified constant.**
 
-### Value Fill
+**Note:** 
+- When using the ValueFill, IoTDB neither fill the query result if the data type is different from the input constant nor throw exception, just keep it as it is.
 
-When the value in the queried timestamp is null, given fill value is used to fill the blank. The formalized value method is as follows:
+   | Constant Value Data Type | Support Data Type                 |
+   |:-------------------------|:----------------------------------|
+   | `BOOLEAN` | `BOOLEAN` `TEXT` |
+   | `INT64` | `INT32` `INT64` `FLOAT` `DOUBLE` `TEXT` |
+   | `DOUBLE` | `FLOAT` `DOUBLE` `TEXT` |
+   | `TEXT` | `TEXT` |
+- If constant value is larger than Integer.MAX_VALUE, IoTDB neither fill the query result if the data type is int32 nor throw exception, just keep it as it is.
 
-```sql
-fill(constant)
-```
-
-Here we give an example of filling null values using the value method. The SQL statement is as follows:
+For example, with `FLOAT` constant fill, the SQL is as follows:
 
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(2.0)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(2.0);
 ```
 
-float constant filled result will be like:
+result will be like:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -164,11 +185,13 @@ float constant filled result will be like:
 Total line number = 4
 ```
 
+For example, with `BOOLEAN` constant fill, the SQL is as follows:
+
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(true)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(true);
 ```
 
-boolean constant filled result will be like:
+result will be like:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -184,16 +207,3 @@ boolean constant filled result will be like:
 +-----------------------------+-------------------------------+--------------------------+
 Total line number = 4
 ```
-
-> Note: When using the ValueFill, IoTDB neither fill the query result if the data type is different from the input constant nor throw exception, just keep it as it is.
-> Note: If constant value is larger than Integer.MAX_VALUE, IoTDB neither fill the query result if the data type is int32 nor throw exception, just keep it as it is.
-
-#### Constant Fill Type Consistency
-
-| Constant Value Data Type | Support Data Type                 |
-|:-------------------------|:----------------------------------|
-| boolean                  | boolean, text                     |
-| int64                    | int32, int64, float, double, text |
-| double                   | float, double, text               |
-| text                     | text                              |
-| </center>                |                                   |
\ No newline at end of file
diff --git a/docs/zh/UserGuide/Query-Data/Fill-Null-Value.md b/docs/zh/UserGuide/Query-Data/Fill-Null-Value.md
index 6ee476972d..92bc517fda 100644
--- a/docs/zh/UserGuide/Query-Data/Fill-Null-Value.md
+++ b/docs/zh/UserGuide/Query-Data/Fill-Null-Value.md
@@ -19,45 +19,56 @@
 
 -->
 
+# 空值填充
 
-# 查询补空值
+## 功能介绍
 
-当执行一些查询时,结果集的某行某列可能没有数据,则此位置结果为空,但这种空值不利于进行数据可视化展示和分析,需要对空值进行填补。
+当执行一些数据查询时,结果集的某行某列可能没有数据,则此位置结果为空,但这种空值不利于进行数据可视化展示和分析,需要对空值进行填充。
 
-查询补空值允许用户按照特定的方法对任何查询的结果填充空值,如取前一个不为空的值,或线性插值。补空值之后的查询结果能更好地反映数据分布,有利于用户进行数据分析。
+在 IoTDB 中,用户可以使用 `FILL` 子句指定数据缺失情况下的填充模式,允许用户按照特定的方法对任何查询的结果集填充空值,如取前一个不为空的值、线性插值等。
 
-在 IoTDB 中,用户可以使用 FILL 子句指定数据缺失的情况下的填充模式。如果查询点不为空,则填充功能将不起作用。
+## 语法定义
 
-## 填充方法
+**`FILL` 子句的语法定义如下:**
 
-IoTDB 目前支持  `previous` , `linear`,  `value` 三种空值填充方式,数据类型和支持的填充方法如下表所示:
+```sql
+FILL '(' PREVIOUS | LINEAR | constant ')'
+```
 
-| 数据类型 | 支持的填充方法                 |
-| :------- |:------------------------|
-| boolean  | previous, value         |
-| int32    | previous, linear, value |
-| int64    | previous, linear, value |
-| float    | previous, linear, value |
-| double   | previous, linear, value |
-| text     | previous, value         |
+**注意:** 
+- 在 `Fill` 语句中只能指定一种填充方法,该方法作用于结果集的全部列。
+- 空值填充不兼容 0.13 版本及以前的语法(即不支持 `FILL((<data_type>[<fill_method>(, <before_range>, <after_range>)?])+)`)
 
-> 注意:在 Fill 语句中只能指定一种填充方法。空值填充不兼容 0.13 版本及以前的语法(即 fill((<data_type>[<fill_method>(, <before_range>, <after_range>)?])+))
+## 填充方式
 
-### Previous 填充
+**IoTDB 目前支持以下三种空值填充方式:**
 
-当查询的时间戳下数据为空时,将使用前一个时间戳的值来填充空白。 语法定义如下:
+- `PREVIOUS` 填充:使用该列前一个非空值进行填充。
+- `LINEAR` 填充:使用该列前一个非空值和下一个非空值的线性插值进行填充。
+- 常量填充:使用指定常量填充。
 
+**各数据类型支持的填充方法如下表所示:**
 
-```sql
-fill(previous)
-```
+| 数据类型 | 支持的填充方法              |
+| :------- |:------------------------|
+| BOOLEAN  | `PREVIOUS`、常量       |
+| INT32    | `PREVIOUS`、`LINEAR`、常量 |
+| INT64    | `PREVIOUS`、`LINEAR`、常量 |
+| FLOAT    | `PREVIOUS`、`LINEAR`、常量 |
+| DOUBLE   | `PREVIOUS`、`LINEAR`、常量 |
+| TEXT     | `PREVIOUS`、常量         |
+
+**注意:** 对于数据类型不支持指定填充方法的列,既不会填充它,也不会报错,只是让那一列保持原样。
 
-在这里,我们举一个使用 Previous 方法填充空值的示例。 SQL 语句如下:
+**下面通过举例进一步说明。**
+
+如果我们不使用任何填充方式:
 
 ```sql
-select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000;
 ```
-如果我们不使用任何填充方式,原始的查询结果如下:
+
+查询结果如下:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -74,12 +85,19 @@ select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:
 Total line number = 4
 ```
 
-如果我们使用previous填充, SQL 语句如下:
+### `PREVIOUS` 填充
+
+**对于查询结果集中的空值,使用该列前一个非空值进行填充。**
+
+**注意:** 如果结果集的某一列第一个值就为空,则不会填充该值,直到遇到该列第一个非空值为止。
+
+例如,使用 `PREVIOUS` 填充,SQL 语句如下:
+
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(previous)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(previous);
 ```
 
-previous填充后的结果如下:
+`PREVIOUS` 填充后的结果如下:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -96,24 +114,21 @@ previous填充后的结果如下:
 Total line number = 4
 ```
 
-> 注意:如果结果集的某一列第一个值就位空,那我们不会填充这一列,直到遇到这一列第一个不为空的值为止。
+### `LINEAR` 填充
 
+**对于查询结果集中的空值,使用该列前一个非空值和下一个非空值的线性插值进行填充。** 
 
-### Linear 填充
+**注意:** 
+- 如果某个值之前的所有值都为空,或者某个值之后的所有值都为空,则不会填充该值。
+- 如果某列的数据类型为boolean/text,我们既不会填充它,也不会报错,只是让那一列保持原样。
 
-当查询的时间戳下数据为空时,将使用前一个和下一个时间戳的值来填充空白。 语法定义如下:
+例如,使用 `LINEAR` 填充,SQL 语句如下:
 
 ```sql
-fill(linear)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(linear);
 ```
-
-在这里,我们举一个使用线性方法填充空值的示例。 SQL 语句如下:
-
-```sql
-select temperature from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(linear)
-```
-
-线性填充后的结果如下:
+ 
+`LINEAR` 填充后的结果如下:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -130,18 +145,28 @@ select temperature from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.00
 Total line number = 4
 ```
 
-> 注意:如果某个值之前的所有值都为空,或者某个值之后的所有值都为空,我们不会填充该值。
-> 注意:如果某列的数据类型为boolean/text,我们既不会填充它,也不会报错,只是让那一列保持原样。
+### 常量填充
+
+**对于查询结果集中的空值,使用指定常量填充。**
 
-### Value 填充
+**注意:**
+- 如果某列数据类型与常量类型不兼容,既不填充该列,也不报错,将该列保持原样。对于常量兼容的数据类型,如下表所示:
 
-当查询的时间戳下数据为空时,将使用给定的值来填充空白。语法定义如下:
+   | 常量类型 | 能够填充的序列数据类型 |
+   |:------ |:------------------ |
+   | `BOOLEAN` | `BOOLEAN` `TEXT` |
+   | `INT64` | `INT32` `INT64` `FLOAT` `DOUBLE` `TEXT` |
+   | `DOUBLE` | `FLOAT` `DOUBLE` `TEXT` |
+   | `TEXT` | `TEXT` |
+- 当常量值大于 `INT32` 所能表示的最大值时,对于 `INT32` 类型的列,既不填充该列,也不报错,将该列保持原样。
+
+例如,使用 `FLOAT` 类型的常量填充,SQL 语句如下:
 
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(2.0)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(2.0);
 ```
 
-使用float类型的常量填充后的结果如下:
+`FLOAT` 类型的常量填充后的结果如下:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -158,11 +183,13 @@ select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000
 Total line number = 4
 ```
 
+再比如,使用 `BOOLEAN` 类型的常量填充,SQL 语句如下:
+
 ```sql
-select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(true)
+select temperature, status from root.sgcc.wf03.wt01 where time >= 2017-11-01T16:37:00.000 and time <= 2017-11-01T16:40:00.000 fill(true);
 ```
 
-使用boolean类型的常量填充后的结果如下:
+`BOOLEAN` 类型的常量填充后的结果如下:
 
 ```
 +-----------------------------+-------------------------------+--------------------------+
@@ -177,17 +204,4 @@ select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000
 |2017-11-01T16:40:00.000+08:00|                          23.43|                      true|
 +-----------------------------+-------------------------------+--------------------------+
 Total line number = 4
-```
-
-> 注意:当我们使用常量填充时,如果某列数据类型与常量类型不兼容,我们既不填充该列,也不报错,将该列保持原样。
-> 注意:当常量值大于int32所能表示的最大值时,对于int32类型的列,我们既不填充该列,也不报错,将该列保持原样。
-
-#### 常量类型兼容性
-
-| 常量类型      | 能够填充的数据类型                |
-|:----------|:----------------------------------|
-| boolean   | boolean, text                     |
-| int64     | int32, int64, float, double, text |
-| double    | float, double, text               |
-| text      | text                              |
-| </center> |                                   |
+```
\ No newline at end of file


[iotdb] 02/09: delete Tracing-Tool & Without-Null in user guide

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit dfb7d1d61eea7ef09d8a43e4a7da218b881caeab
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 15:06:55 2022 +0800

    delete Tracing-Tool & Without-Null in user guide
---
 docs/UserGuide/Query-Data/Tracing-Tool.md    |  48 --------
 docs/UserGuide/Query-Data/Without-Null.md    | 172 ---------------------------
 docs/zh/UserGuide/Query-Data/Tracing-Tool.md |  48 --------
 docs/zh/UserGuide/Query-Data/Without-Null.md | 172 ---------------------------
 site/src/main/.vuepress/config.js            |  12 +-
 5 files changed, 4 insertions(+), 448 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Tracing-Tool.md b/docs/UserGuide/Query-Data/Tracing-Tool.md
deleted file mode 100644
index a6529413a6..0000000000
--- a/docs/UserGuide/Query-Data/Tracing-Tool.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Performance Tracing Tool
-
-IoTDB supports the use of the `TRACING` clause to enable performance tracing of executed query statements. Users can use the performance tracing tool to analyze potential performance problems in some statements.
-
-The current performance analysis includes the following contents:
-1. The elapsed time of each stage of the execution process.
-2. Statistics related to performance analysis, it includes the number of time series queried, the number of Tsfile files accessed, the total number of chunks to be scanned, and the average number of data points contained in the chunk, the total number of pages read, and the number of overlapped pages.
-
-For example, execute `tracing select * from root`, will display the following contents:
-
-```
-Tracing Activties:
-+------------------------------------------------------+------------+
-|                                              Activity|Elapsed Time|
-+------------------------------------------------------+------------+
-|Start to execute statement: tracing select * from root|           0|
-|                            Parse SQL to physical plan|           4|
-|                              Create and cache dataset|          16|
-|                              * Num of series paths: 3|            |
-|                       * Num of sequence files read: 2|            |
-|                     * Num of unsequence files read: 1|            |
-|        * Num of sequence chunks: 6, avg points: 100.0|            |
-|      * Num of unsequence chunks: 3, avg points: 100.0|            |
-|         * Num of Pages: 9, overlapped pages: 0 (0.0%)|            |
-|                                      Request complete|          20|
-+------------------------------------------------------+------------+
-```
\ No newline at end of file
diff --git a/docs/UserGuide/Query-Data/Without-Null.md b/docs/UserGuide/Query-Data/Without-Null.md
deleted file mode 100644
index 6d5c3c2d0b..0000000000
--- a/docs/UserGuide/Query-Data/Without-Null.md
+++ /dev/null
@@ -1,172 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# Null Value Filter
-
-In practical application, users may want to filter some rows with null values in the query result set. In IoTDB, the `WITHOUT NULL` clause can be used to filter null values in the result set. There are two filtering strategies: `WITHOUT NULL ANY`和`WITHOUT NULL ALL`. In addition, the `WITHOUT NULL` clause supports specifying the corresponding columns for filtering.
-
-> WITHOUT NULL ANY: if one of the columns in the specified column set is null, the conditions are met for filtering.
-> 
-> WITHOUT NULL ALL: if all columns in the specified column set are null, the conditions are met for filtering.
-
-## Don't specify columns
-
-> By default, it is effective for all columns in the result set. That is the specified column set includes all columns in the result set.
-
-1. In the following query, if any column of one row in the result set is null, the row will be filtered out. That is the result set obtained does not contain any null values.
-
-```sql
-select * from root.ln.** where time <= 2017-11-01T00:01:00 WITHOUT NULL ANY
-```
-
-2. In the following query, if all columns of one row in the result set are null, the row will be filtered out.
-
-```sql
-select * from root.ln.** where group by ([1,10), 2ms) WITHOUT NULL ALL
-```
-
-## Specify columns
-
-> take effect only for the specified column set
-
-Use the `WITHOUT NULL` clause to filter the null value of the specified column in the result set. The following are some examples and descriptions:
-
-> Note that if the specified column does not exist in the current metadata, it will be filtered directly, which is consistent with the output result of the current query.
-> If the specified column exists but does not match the column name output from the result set, an error will be reported: `The without null columns don't match the columns queried.If has alias, please use the alias.`
-
-For examples:
-
-1. In `without null` specified column set, `root.test.sg1.s1` column exists in the current metadata,`root.test.sg1.usag` column does not exist in the current metadata. The function of the `without null` clause in the following query is equivalent to without null all(s1).
-
-```sql
-select * from root.test.sg1 without null all (s1, usag)
-```
-
-2. In `without null` specified column set, `root.test.sg1.s2` column exists in the current metadata, but doesn't exist in the result set of the query. So it will report an error: `The without null columns don't match the columns queried.If has alias, please use the alias.`
-
-```sql
-select s1 + s2, s1 - s2, s1 * s2, s1 / s2, s1 % s2 from root.test.sg1 without null all (s1+s2, s2)
-```
-
-### Raw data query
-
-1. If the column `root.ln.sg1.s1` of one row in the result set of the query is null, the row will be filtered out.
-
-```sql
-select * from root.ln.sg1 WITHOUT NULL ANY(s1)
-```
-
-2. If at least one column in `root.ln.sg1.s1` and `root.ln.sg1.s2` of one row is null in the result set of the query, the row will be filtered out.
-
-```sql
-select * from root.ln.sg1 WITHOUT NULL ANY(s1, s2)
-```
-
-3. If both `root.ln.sg1.s1` and `root.ln.sg1.s2` columns of one row are null in the result set of the query, the row will be filtered out.
-
-```sql
-select * from root.ln.sg1 WITHOUT NULL ALL(s1, s2)
-```
-
-### With expression query
-
-specified columns can be expression
-
-1. If both `s2+s4` and `s2` columns of one row are null in the result set of the query, the row will be filtered out.
-
-```sql
-select s2, - s2, s4, + s4, s2 + s4, s2 - s4, s2 * s4, s2 / s4, s2 % s4 from root.test.sg1 without null all (s2+s4, s2)
-```
-
-2. If at least one column in `s2+s4` and `s2` of one row is null in the result set of the query, the row will be filtered out.
-
-```sql
-select s2, - s2, s4, + s4, s2 + s4, s2 - s4, s2 * s4, s2 / s4, s2 % s4 from root.test.sg1 without null any (s2+s4, s2)
-```
-
-
-### With function query
-
-```sql
-select s1, sin(s2) + cos(s2), cos(sin(s2 + s4) + s2) from root.test.sg1 without null all (sin(s2) + cos(s2), cos(sin(s2 + s4) + s2))
-```
-
-### Align by device query
-
-```sql
-select last_value(*) from root.test.sg1 group by([1,10), 2ms) without null all(last_value(s2), last_value(s3)) align by device
-```
-
-Examples of results are as follows:
-
-```
-IoTDB> select last_value(*) from root.sg1.* group by([1,10), 2ms) without null all(last_value(s2), last_value(s3)) align by device
-+-----------------------------+-----------+--------------+--------------+--------------+
-|                         Time|     Device|last_value(s1)|last_value(s2)|last_value(s3)|
-+-----------------------------+-----------+--------------+--------------+--------------+
-|1970-01-01T08:00:00.001+08:00|root.sg1.d1|           1.0|           2.0|          null|
-|1970-01-01T08:00:00.003+08:00|root.sg1.d1|           3.0|           4.0|          null|
-|1970-01-01T08:00:00.001+08:00|root.sg1.d2|           1.0|           1.0|           1.0|
-+-----------------------------+-----------+--------------+--------------+--------------+
-Total line number = 3
-It costs 0.007s
-```
-
-The specified column name corresponds to the column name of the output result. At present, the `without null` clause doesn't support specifying a column of a device. If you do, an error will be reported: `The without null columns don't match the columns queried.If has alias, please use the alias.` For example, in the following query example, it is not supported to filter the row with column `last_value(root.sg1.d1.s3)` that is null.
-
-```sql
-select last_value(*) from root.test.sg1 group by([1,10), 2ms) without null all(last_value(`root.sg1.d1.s3`)) align by device
-```
-
-### Aggregation query
-
-```sql
-select avg(s4), sum(s2) from root.test.sg1 group by ([1,10), 2ms) without null all(sum(s2))
-```
-
-```sql
-select avg(s4), sum(s2), count(s3) from root.test.sg1 group by ([1,10), 2ms) without null all(avg(s4), sum(s2))
-```
-
-### Specify full path columns
-
-Assuming that the output results of the following query are listed as `root.test.sg1.s2`, `root.test.sg1.s3`, `root.test.sg2.s2` and `root.test.sg2.s3`, you can specify the corresponding columns with full pathname for filtering, such as the following example:
-
-1. If both `root.test.sg1.s2` and `root.test.sg2.s3` columns of one row are null in the result set of the query, the row will be filtered out.
-
-```sql
-select s2, s3 from root.test.** without null all(root.test.sg1.s2, root.test.sg2.s3)
-```
-
-2. If `root.test.sg1.s2`, `root.test.sg1.s3` and `root.test.sg2.s3` columns of one row are null in the result set of the query, the row will be filtered out.
-
-```sql
-select s2, s3 from root.test.** without null all(root.test.sg1.s2, s3)
-```
-
-### Aligned Timeseries Query
-
-1. You can specify the `without null` column name as the aligned timeseries column name.
-
-```sql
-CREATE ALIGNED TIMESERIES root.test.sg3(s5 INT32, s6 BOOLEAN, s7 DOUBLE, s8 INT32)
-select sg1.s1, sg1.s2, sg2.s3, sg3.* from root.test without null all (sg3.s5, sg3.s6, sg2.s3)
-```
\ No newline at end of file
diff --git a/docs/zh/UserGuide/Query-Data/Tracing-Tool.md b/docs/zh/UserGuide/Query-Data/Tracing-Tool.md
deleted file mode 100644
index 6ec4641639..0000000000
--- a/docs/zh/UserGuide/Query-Data/Tracing-Tool.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# 查询性能追踪
-
-IoTDB 支持使用 `TRACING` 关键词对查询语句进行性能追踪。用户可以使用性能追踪工具来分析语句执行中存在的潜在性能问题。
-
-性能追踪的结果包括:
-1. 查询执行过程中各个阶段的累积耗时。
-2. 与查询性能分析相关的统计信息,包括查询的时间序列数、涉及访问的 Tsfile 文件数、需要扫描的 chunk 总数以及平均每个 chunk 包含的数据点个数、读取的 Page 总数以及其中乱序 Page 的个数。
-
-例如执行 `tracing select * from root.**`,输出结果如下:
-
-```
-Tracing Activties:
-+---------------------------------------------------------+------------+
-|                                                 Activity|Elapsed Time|
-+---------------------------------------------------------+------------+
-|Start to execute statement: tracing select * from root.**|           0|
-|                               Parse SQL to physical plan|           4|
-|                                 Create and cache dataset|          16|
-|                                 * Num of series paths: 3|            |
-|                          * Num of sequence files read: 2|            |
-|                        * Num of unsequence files read: 1|            |
-|           * Num of sequence chunks: 6, avg points: 100.0|            |
-|         * Num of unsequence chunks: 3, avg points: 100.0|            |
-|            * Num of Pages: 9, overlapped pages: 0 (0.0%)|            |
-|                                         Request complete|          20|
-+---------------------------------------------------------+------------+
-```
\ No newline at end of file
diff --git a/docs/zh/UserGuide/Query-Data/Without-Null.md b/docs/zh/UserGuide/Query-Data/Without-Null.md
deleted file mode 100644
index 0c1f34454b..0000000000
--- a/docs/zh/UserGuide/Query-Data/Without-Null.md
+++ /dev/null
@@ -1,172 +0,0 @@
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-    
-        http://www.apache.org/licenses/LICENSE-2.0
-    
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
-
--->
-
-# 结果集空值过滤
-
-在实际应用中,用户可能希望对查询的结果集中某些存在空值的行进行过滤。在 IoTDB 中,可以使用  `WITHOUT NULL`  子句对结果集中的空值进行过滤,有两种过滤策略:`WITHOUT NULL ANY`和`WITHOUT NULL ALL`。不仅如此, `WITHOUT NULL`  子句支持指定相应列进行过滤。
-
-> WITHOUT NULL ANY: 指定的列集中,存在一列为NULL,则满足条件进行过滤
-> 
-> WITHOUT NULL ALL: 指定的列集中,所有列都为NULL,才满足条件进行过滤
-
-## 不指定列
-
-> 默认就是对结果集中的所有列生效,即指定的列集为结果集中的所有列
-
-1. 在下列查询中,如果结果集中某一行任意一列为 null,则过滤掉该行;即获得的结果集不包含任何空值。
-
-```sql
-select * from root.ln.** where time <= 2017-11-01T00:01:00 WITHOUT NULL ANY
-```
-
-2. 在下列查询中,如果结果集的某一行所有列都为 null,则过滤掉该行;即获得的结果集不包含所有值都为 null 的行。
-
-```sql
-select * from root.ln.** where group by ([1,10), 2ms) WITHOUT NULL ALL
-```
-
-## 指定列
-
-> 只对指定的列集生效
-
-使用 `WITHOUT NULL`子句对结果集中指定列名的空值进行过滤,下面是一些例子及其说明:
-
-> 注意,如果指定的列在当前元数据里不存在则会直接过滤掉,这与目前查询列的输出结果是一致的;
-> 如果指定的列存在,但与结果集中输出的列名不匹配,则会报错: `The without null columns don't match the columns queried.If has alias, please use the alias.`
-
-比如下面的例子
-
-1. 比如`without null`指定的列集中`root.test.sg1.s1`列在元数据中存在,`root.test.sg1.usag`列在元数据不存在,则下面查询的without null子句的作用相当于without null all(s1)
-
-```sql
-select * from root.test.sg1 without null all (s1, usag)
-```
-
-2. 比如`without null`指定的列集中`root.test.sg1.s2`列在元数据中存在,但查询的结果集中输出列不包括,所以会报错:`The without null columns don't match the columns queried.If has alias, please use the alias.`
-
-```sql
-select s1 + s2, s1 - s2, s1 * s2, s1 / s2, s1 % s2 from root.test.sg1 without null all (s1+s2, s2)
-```
-
-### 原始数据查询
-
-1. 如果查询的结果集中, root.ln.sg1.s1这一列如果为null,则过滤掉该行
-
-```sql
-select * from root.ln.sg1 WITHOUT NULL ANY(s1)
-```
-
-2. 如果查询的结果集中, root.ln.sg1.s1和root.ln.sg1.s2中只要存在至少一列为null,则过滤掉该行
-
-```sql
-select * from root.ln.sg1 WITHOUT NULL ANY(s1, s2)
-```
-
-3. 如果查询的结果集中, 只要root.ln.sg1.s1和root.ln.sg1.s2这两列都为null,则过滤掉该行
-
-```sql
-select * from root.ln.sg1 WITHOUT NULL ALL(s1, s2)
-```
-
-### 带表达式查询
-
-指定的列可以为表达式
-
-1. 计算s2+s4和s2这两列是否都为null,如果是则过滤
-
-```sql
-select s2, - s2, s4, + s4, s2 + s4, s2 - s4, s2 * s4, s2 / s4, s2 % s4 from root.test.sg1 without null all (s2+s4, s2)
-```
-
-2. 计算s2+s4和s2这两列是否至少有一列为null,如果是则过滤
-
-```sql
-select s2, - s2, s4, + s4, s2 + s4, s2 - s4, s2 * s4, s2 / s4, s2 % s4 from root.test.sg1 without null any (s2+s4, s2)
-```
-
-
-### 带函数查询
-
-```sql
-select s1, sin(s2) + cos(s2), cos(sin(s2 + s4) + s2) from root.test.sg1 without null all (sin(s2) + cos(s2), cos(sin(s2 + s4) + s2))
-```
-
-### 按设备对齐查询
-
-```sql
-select last_value(*) from root.test.sg1 group by([1,10), 2ms) without null all(last_value(s2), last_value(s3)) align by device
-```
-
-结果示例如下:
-
-```
-IoTDB> select last_value(*) from root.sg1.* group by([1,10), 2ms) without null all(last_value(s2), last_value(s3)) align by device
-+-----------------------------+-----------+--------------+--------------+--------------+
-|                         Time|     Device|last_value(s1)|last_value(s2)|last_value(s3)|
-+-----------------------------+-----------+--------------+--------------+--------------+
-|1970-01-01T08:00:00.001+08:00|root.sg1.d1|           1.0|           2.0|          null|
-|1970-01-01T08:00:00.003+08:00|root.sg1.d1|           3.0|           4.0|          null|
-|1970-01-01T08:00:00.001+08:00|root.sg1.d2|           1.0|           1.0|           1.0|
-+-----------------------------+-----------+--------------+--------------+--------------+
-Total line number = 3
-It costs 0.007s
-```
-
-指定的列名是与输出结果的列名对应,目前`without null`子句不支持指定某设备的某列,会报错:`The without null columns don't match the columns queried.If has alias, please use the alias.` 比如下面这个查询例子,指定last_value(root.sg1.d1.s3)为null的行进行过滤,目前是不支持的。
-
-```sql
-select last_value(*) from root.test.sg1 group by([1,10), 2ms) without null all(last_value(`root.sg1.d1.s3`)) align by device
-```
-
-### 聚合查询
-
-```sql
-select avg(s4), sum(s2) from root.test.sg1 group by ([1,10), 2ms) without null all(sum(s2))
-```
-
-```sql
-select avg(s4), sum(s2), count(s3) from root.test.sg1 group by ([1,10), 2ms) without null all(avg(s4), sum(s2))
-```
-
-### 指定全路径列名
-
-假设下面的查询输出的结果列为"root.test.sg1.s2", "root.test.sg1.s3", "root.test.sg2.s2", "root.test.sg2.s3"四个,可以使用全路径名指定相应列进行过滤,比如下面的例子:
-
-1. 指定`root.test.sg1.s2`, `root.test.sg2.s3`两列都为null则过滤
-
-```sql
-select s2, s3 from root.test.** without null all(root.test.sg1.s2, root.test.sg2.s3)
-```
-
-2. 指定`root.test.sg1.s2`, `root.test.sg1.s3`, `root.test.sg2.s3`三列都为null则过滤
-
-```sql
-select s2, s3 from root.test.** without null all(root.test.sg1.s2, s3)
-```
-
-### 对齐序列查询
-
-1. 可以指定`without null` 子句后的列名为对齐序列列名
-
-```sql
-CREATE ALIGNED TIMESERIES root.test.sg3(s5 INT32, s6 BOOLEAN, s7 DOUBLE, s8 INT32)
-select sg1.s1, sg1.s2, sg2.s3, sg3.* from root.test without null all (sg3.s5, sg3.s6, sg2.s3)
-```
\ No newline at end of file
diff --git a/site/src/main/.vuepress/config.js b/site/src/main/.vuepress/config.js
index acebd98e00..3940c726ba 100644
--- a/site/src/main/.vuepress/config.js
+++ b/site/src/main/.vuepress/config.js
@@ -647,7 +647,7 @@ var config = {
 				],
 				'/UserGuide/V0.13.x/': [
 					{
-						title:'IoTDB User Guide (latest)',
+						title:'IoTDB User Guide (V0.13.x)',
 						collapsable: false,
 					},
 					{
@@ -921,9 +921,7 @@ var config = {
 							['Query-Data/Result-Format.md','Query Result Formats'],
 							['Query-Data/Aggregate-Query.md','Aggregate Query'],
 							['Query-Data/Last-Query.md','Last Query'],
-							['Query-Data/Fill-Null-Value.md','Fill Null Value'],
-							['Query-Data/Without-Null.md','Without Null'],
-							['Query-Data/Tracing-Tool.md','Tracing Tool']
+							['Query-Data/Fill-Null-Value.md','Fill Null Value']
 						]
 					},
 					{
@@ -1581,7 +1579,7 @@ var config = {
 				],
 				'/zh/UserGuide/V0.13.x/': [
 					{
-						title: 'IoTDB用户手册 (In progress)',
+						title: 'IoTDB用户手册 (V0.13.x)',
 						collapsable: false,
 					},
 					{
@@ -1855,9 +1853,7 @@ var config = {
 							['Query-Data/Result-Format.md','查询结果对齐格式'],
 							['Query-Data/Aggregate-Query.md','聚合查询'],
 							['Query-Data/Last-Query.md','最新点查询'],
-							['Query-Data/Fill-Null-Value.md','空值填充'],
-							['Query-Data/Without-Null.md','空值过滤'],
-							['Query-Data/Tracing-Tool.md','查询性能追踪']
+							['Query-Data/Fill-Null-Value.md','空值填充']
 						]
 					},
 					{


[iotdb] 04/09: update Last-Query

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 0c37b72157153100af1ec5965703378ab8b57eb9
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:37:30 2022 +0800

    update Last-Query
---
 docs/UserGuide/Query-Data/Last-Query.md    | 16 ++++++++--------
 docs/zh/UserGuide/Query-Data/Last-Query.md | 20 ++++++++++----------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Last-Query.md b/docs/UserGuide/Query-Data/Last-Query.md
index 80134b4087..d3c433c5e4 100644
--- a/docs/UserGuide/Query-Data/Last-Query.md
+++ b/docs/UserGuide/Query-Data/Last-Query.md
@@ -33,15 +33,17 @@ select last <Path> [COMMA <Path>]* from < PrefixPath > [COMMA < PrefixPath >]* <
 
 which means: Query and return the last data points of timeseries prefixPath.path.
 
-Only time filter is supported in \<WhereClause\>. Any other filters given in the \<WhereClause\> will give an exception. When the cached most recent data point does not satisfy the criterion specified by the filter, IoTDB will have to get the result from the external storage, which may cause a decrease in performance.
+- Only time filter is supported in \<WhereClause\>. Any other filters given in the \<WhereClause\> will give an exception. When the cached most recent data point does not satisfy the criterion specified by the filter, IoTDB will have to get the result from the external storage, which may cause a decrease in performance.
 
-The result will be returned in a four column table format.
+- The result will be returned in a four column table format.
 
-```
-| Time | timeseries | value | dataType |
-```
+    ```
+    | Time | timeseries | value | dataType |
+    ```
+    
+    **Note:** The `value` colum will always return the value as `string` and thus also has `TSDataType.TEXT`. Therefore, the column `dataType` is returned also which contains the _real_ type how the value should be interpreted.
 
-**Note:** The `value` colum will always return the value as `string` and thus also has `TSDataType.TEXT`. Therefore, the column `dataType` is returned also which contains the _real_ type how the value should be interpreted.
+- We can use `ORDER BY TIMESERIES (DESC | ASC)` to specify that the result set is sorted in descending/ascending order by timeseries name.
 
 **Example 1:** get the last point of root.ln.wf01.wt01.status:
 
@@ -70,8 +72,6 @@ Total line number = 2
 It costs 0.002s
 ```
 
-## Order By timeseries
-
 **Example 3:** get the last points of all sensor in root.ln.wf01.wt01, and order the result by the timeseries column desc
 
 ```
diff --git a/docs/zh/UserGuide/Query-Data/Last-Query.md b/docs/zh/UserGuide/Query-Data/Last-Query.md
index 2084cc0823..21aef7f360 100644
--- a/docs/zh/UserGuide/Query-Data/Last-Query.md
+++ b/docs/zh/UserGuide/Query-Data/Last-Query.md
@@ -29,17 +29,19 @@ SQL 语法:
 select last <Path> [COMMA <Path>]* from < PrefixPath > [COMMA < PrefixPath >]* <whereClause> [ORDER BY TIMESERIES (DESC | ASC)?]
 ```
 
-其含义是:查询时间序列 prefixPath.path 中最近时间戳的数据。
+其含义是: 查询时间序列 prefixPath.path 中最近时间戳的数据。
 
-`whereClause` 中当前只支持时间过滤条件,任何其他过滤条件都将会返回异常。当缓存的最新点不满足过滤条件时,IoTDB 需要从存储中获取结果,此时性能将会有所下降。
+- `whereClause` 中当前只支持时间过滤条件,任何其他过滤条件都将会返回异常。当缓存的最新点不满足过滤条件时,IoTDB 需要从存储中获取结果,此时性能将会有所下降。
 
-结果集为四列的结构:
+- 结果集为四列的结构:
 
-```
-+----+----------+-----+--------+
-|Time|timeseries|value|dataType|
-+----+----------+-----+--------+
-```
+    ```
+    +----+----------+-----+--------+
+    |Time|timeseries|value|dataType|
+    +----+----------+-----+--------+
+    ```
+
+- 可以使用 `ORDER BY TIMESERIES (DESC | ASC)` 指定结果集按照序列名降序/升序排列。
 
 **示例 1:** 查询 root.ln.wf01.wt01.status 的最新数据点
 
@@ -68,8 +70,6 @@ Total line number = 2
 It costs 0.002s
 ```
 
-## 将结果集根据序列名进行排序
-
 **示例 3:** 查询 root.ln.wf01.wt01 下所有序列的最新数据点,并按照序列名降序排列。
 
 ```


[iotdb] 07/09: update Pagination

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 251491955dacd885a56bcec093aedda40ebb231b
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:45:02 2022 +0800

    update Pagination
---
 docs/UserGuide/Query-Data/Pagination.md    | 35 ------------------------------
 docs/zh/UserGuide/Query-Data/Pagination.md | 32 ---------------------------
 2 files changed, 67 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Pagination.md b/docs/UserGuide/Query-Data/Pagination.md
index 3992f1f8a7..9bb61ec14b 100644
--- a/docs/UserGuide/Query-Data/Pagination.md
+++ b/docs/UserGuide/Query-Data/Pagination.md
@@ -142,18 +142,6 @@ Total line number = 4
 It costs 0.016s
 ```
 
-It is worth noting that because the current FILL clause can only fill in the missing value of timeseries at a certain time point, that is to say, the execution result of FILL clause is exactly one line, so LIMIT and OFFSET are not expected to be used in combination with FILL clause, otherwise errors will be prompted. For example, executing the following SQL statement:
-
-```sql
-select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(previous, 1m) limit 10
-```
-
-The SQL statement will not be executed and the corresponding error prompt is given as follows:
-
-```
-Msg: 401: line 1:107 mismatched input 'limit' expecting {<EOF>, ';'}
-```
-
 ## Column Control over Query Results
 
 By using SLIMIT and SOFFSET clauses, users can control the query results in a column-related manner. We will demonstrate how to use SLIMIT and SOFFSET clauses through the following examples.
@@ -240,29 +228,6 @@ Total line number = 7
 It costs 0.000s
 ```
 
-* Example 4: SLIMIT clause combined with FILL clause
-
-The SQL statement is:
-
-```sql
-select * from root.sgcc.wf03.wt01 where time = 2017-11-01T16:35:00 fill(previous, 1m) slimit 1 soffset 1
-```
-which means:
-
-The selected device is ln group wf01 plant wt01 device; the selected timeseries is the second column under this device, i.e., the temperature.
-
-The result is shown below:
-
-```
-+-----------------------------+--------------------------+
-|                         Time|root.sgcc.wf03.wt01.status|
-+-----------------------------+--------------------------+
-|2017-11-01T16:35:00.000+08:00|                      true|
-+-----------------------------+--------------------------+
-Total line number = 1
-It costs 0.007s
-```
-
 ## Row and Column Control over Query Results
 
 In addition to row or column control over query results, IoTDB allows users to control both rows and columns of query results. Here is a complete example with both LIMIT clauses and SLIMIT clauses.
diff --git a/docs/zh/UserGuide/Query-Data/Pagination.md b/docs/zh/UserGuide/Query-Data/Pagination.md
index 6b05da57e6..06da5bba3e 100644
--- a/docs/zh/UserGuide/Query-Data/Pagination.md
+++ b/docs/zh/UserGuide/Query-Data/Pagination.md
@@ -146,18 +146,6 @@ Total line number = 4
 It costs 0.016s
 ```
 
-值得注意的是,由于当前的 FILL 子句只能在某个时间点填充时间序列的缺失值,也就是说,FILL 子句的执行结果恰好是一行,因此 LIMIT 和 OFFSE 不能与 FILL 子句结合使用,否则将提示错误。 例如,执行以下 SQL 语句:
-
-```sql
-select temperature from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(previous, 1m) limit 10
-```
-
-错误提示如下:
-
-```
-Msg: 401: Error occured while parsing SQL to physical plan: line 1:101 mismatched input 'limit' expecting {<EOF>, ';'}
-```
-
 ## 按列分页
 
 通过使用 `SLIMIT` 和 `SOFFSET` 子句,用户可以与列相关的方式控制查询结果。 我们将通过以下示例演示如何使用 `SLIMIT` 和 `SOFFSET` 子句。
@@ -246,26 +234,6 @@ Total line number = 7
 It costs 0.000s
 ```
 
-- **示例 4:** `SLIMIT` 子句与 `FILL` 子句结合
-
-SQL 语句:
-
-```sql
-select * from root.sgcc.wf03.wt01 where time = 2017-11-01T16:37:50.000 fill(previous, 1m) slimit 1 soffset 1
-```
-
-含义:
-
-```
-+-----------------------------+--------------------------+
-|                         Time|root.sgcc.wf03.wt01.status|
-+-----------------------------+--------------------------+
-|2017-11-01T16:35:00.000+08:00|                      true|
-+-----------------------------+--------------------------+
-Total line number = 1
-It costs 0.007s
-```
-
 ## 行和列混合分页
 
 除了对查询结果进行行或列控制之外,IoTDB 还允许用户控制查询结果的行和列。 这是同时包含 `LIMIT` 子句和 `SLIMIT` 子句的完整示例。


[iotdb] 09/09: update Select-Into

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit fe1c229d1f6e9da411347fdaeac37d642b1f5be6
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:59:29 2022 +0800

    update Select-Into
---
 docs/UserGuide/Process-Data/Select-Into.md    | 22 ++++++++++++----------
 docs/zh/UserGuide/Process-Data/Select-Into.md | 24 +++++++++++++-----------
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/docs/UserGuide/Process-Data/Select-Into.md b/docs/UserGuide/Process-Data/Select-Into.md
index 96e01bf783..4893543693 100644
--- a/docs/UserGuide/Process-Data/Select-Into.md
+++ b/docs/UserGuide/Process-Data/Select-Into.md
@@ -26,7 +26,7 @@ The `SELECT INTO` statement copies data from query result set into target time s
 The application scenarios are as follows:
 - **Implement IoTDB internal ETL**: ETL the original data and write a new time series.
 - **Query result storage**: Persistently store the query results, which acts like a materialized view.
-- **Non-aligned time series to aligned time series**:  Rewrite non-aligned time series into aligned time series.
+- **Non-aligned time series to aligned time series**:  Rewrite non-aligned time series into another aligned time series.
 
 ## SQL Syntax
 
@@ -130,8 +130,6 @@ It costs 0.625s
 ```
 This statement also writes the query results of the four time series under the `root.sg` storage group to the four specified time series under the `root.sg_copy` storage group. However, in ALIGN BY DEVICE, the number of `intoItem` must be the same as the number of queried devices, and each queried device corresponds to one `intoItem`.
 
-It is easy to see that in the case of ALIGN BY DEVICE query, columns under the same device can only be written to the same target device.
-
 > When aligning the query by device, the result set displayed by `CLI` has one more column, the `source device` column indicating the queried device.
 
 - **Example 4** (aligned by device)
@@ -156,13 +154,11 @@ In particular, We can use variable placeholders to describe the correspondence b
 - Suffix duplication character `::`: Copy the suffix (or measurement) of the query device, indicating that from this layer to the last layer (or measurement) of the device, the node name (or measurement) of the target device corresponds to the queried device The node name (or measurement) is the same.
 - Single-level node matcher `${i}`: Indicates that the current level node name of the target sequence is the same as the i-th level node name of the query sequence. For example, for the path `root.sg1.d1.s1`, `${1}` means `sg1`, `${2}` means `d1`, and `${3}` means `s1`.
 
-Note: The variable placeholder **can only describe the correspondence between time series**, and cannot be used for functions, expressions, etc.
-
 When using variable placeholders, there must be no ambiguity in the correspondence between `intoItem` and the columns of the query result set. The specific cases are classified as follows:
 
 #### ALIGN BY TIME (default)
 
-> Note: If the query includes aggregation and expression calculation, the columns in the query result cannot correspond to a time series, so neither the target device nor the measurement can use variable placeholders.
+> Note: The variable placeholder **can only describe the correspondence between time series**. If the query includes aggregation and expression calculation, the columns in the query result cannot correspond to a time series, so neither the target device nor the measurement can use variable placeholders.
 
 ##### (1) The target device does not use variable placeholders & the target measurement list uses variable placeholders
 
@@ -176,13 +172,13 @@ When using variable placeholders, there must be no ambiguity in the corresponden
 
 ```sql
 select s1, s2
-into root.sg_copy.d1(::), rot.sg_copy.d2(s1), root.sg_copy.d1(${3}), root.sg_copy.d2(::),
+into root.sg_copy.d1(::), root.sg_copy.d2(s1), root.sg_copy.d1(${3}), root.sg_copy.d2(::)
 from root.sg.d1, root.sg.d2;
 ````
 This statement is equivalent to:
 ```sql
 select s1, s2
-into root.sg_copy.d1(s1), rot.sg_copy.d2(s1), root.sg_copy.d1(s2), root.sg_copy.d2(s2),
+into root.sg_copy.d1(s1), root.sg_copy.d2(s1), root.sg_copy.d1(s2), root.sg_copy.d2(s2)
 from root.sg.d1, root.sg.d2;
 ````
 As you can see, the statement is not very simplified in this case.
@@ -213,7 +209,7 @@ Write the query results of all time series under `root.sg` to `root.sg_bk`, the
 
 #### ALIGN BY DEVICE
 
-> Note: If the query includes aggregation and expression calculation, the columns in the query result cannot correspond to a specific physical quantity, so the target measurement cannot use variable placeholders.
+> Note: The variable placeholder **can only describe the correspondence between time series**. If the query includes aggregation and expression calculation, the columns in the query result cannot correspond to a specific physical quantity, so the target measurement cannot use variable placeholders.
 
 ##### (1) The target device does not use variable placeholders & the target measurement list uses variable placeholders
 
@@ -259,6 +255,12 @@ Write the query result of each time series in `root.sg` to the same device, and
 
 We can use the `ALIGNED` keyword to specify the target device for writing to be aligned, and each `intoItem` can be set independently.
 
+**Example:**
+```sql
+select s1, s2 into root.sg_copy.d1(t1, t2), aligned root.sg_copy.d2(t1, t2) from root.sg.d1, root.sg.d2 align by device;
+```
+This statement specifies that `root.sg_copy.d1` is an unaligned device and `root.sg_copy.d2` is an aligned device.
+
 ### Unsupported query clauses
 
 - `SLIMIT`, `SOFFSET`: The query columns are uncertain, so they are not supported.
@@ -306,7 +308,7 @@ It costs 0.115s
 ```
 
 ### Non-aligned time series to aligned time series
-Rewrite non-aligned time series into aligned time series.
+Rewrite non-aligned time series into another aligned time series.
 
 **Note:** It is recommended to use the `LIMIT & OFFSET` clause or the `WHERE` clause (time filter) to batch data to prevent excessive data volume in a single operation.
 
diff --git a/docs/zh/UserGuide/Process-Data/Select-Into.md b/docs/zh/UserGuide/Process-Data/Select-Into.md
index 3d0a57299a..2bac79cd8c 100644
--- a/docs/zh/UserGuide/Process-Data/Select-Into.md
+++ b/docs/zh/UserGuide/Process-Data/Select-Into.md
@@ -26,7 +26,7 @@
 应用场景如下:
 - **实现 IoTDB 内部 ETL**:对原始数据进行 ETL 处理后写入新序列。
 - **查询结果存储**:将查询结果进行持久化存储,起到类似物化视图的作用。
-- **非对齐序列转对齐序列**:对齐序列从0.13版本开始支持,可以通过该功能将历史的非对齐序列重新写成对齐序列。
+- **非对齐序列转对齐序列**:对齐序列从0.13版本开始支持,可以通过该功能将非对齐序列的数据写入新的对齐序列中。
 
 ## 语法定义
 
@@ -129,8 +129,6 @@ It costs 0.625s
 
 该语句同样是将 `root.sg` 存储组下四条序列的查询结果写入到 `root.sg_copy` 存储组下指定的四条序列中。但在按设备对齐中,`intoItem` 的数量必须和查询的设备数量一致,每个查询设备对应一个 `intoItem`。
 
-容易看出,在按设备对齐查询的情况下,同一个设备下的列只能写入相同的目标设备。
-
 > 按设备对齐查询时,`CLI` 展示的结果集多出一列 `source device` 列表示查询的设备。
 
 - **示例 4**(按设备对齐)
@@ -156,13 +154,11 @@ It costs 0.532s
 - 后缀复制符 `::`:复制查询设备后缀(或物理量),表示从该层开始一直到设备的最后一层(或物理量),目标设备的节点名(或物理量名)与查询的设备对应的节点名(或物理量名)相同。
 - 单层节点匹配符 `${i}`:表示目标序列当前层节点名与查询序列的第`i`层节点名相同。比如,对于路径`root.sg1.d1.s1`而言,`${1}`表示`sg1`,`${2}`表示`d1`,`${3}`表示`s1`。
 
-注意:变量占位符**只能描述序列与序列之间的对应关系**,不能用于函数、表达式等。
-
 在使用变量占位符时,`intoItem`与查询结果集列的对应关系不能存在歧义,具体情况分类讨论如下:
 
 #### 按时间对齐(默认)
 
-> 注:如果查询中包含聚合、表达式计算,此时查询结果中的列无法与某个序列对应,因此目标设备和目标物理量都不能使用变量占位符。 
+> 注:变量占位符**只能描述序列与序列之间的对应关系**,如果查询中包含聚合、表达式计算,此时查询结果中的列无法与某个序列对应,因此目标设备和目标物理量都不能使用变量占位符。 
 
 ##### (1)目标设备不使用变量占位符 & 目标物理量列表使用变量占位符
   
@@ -176,13 +172,13 @@ It costs 0.532s
 
 ```sql
 select s1, s2
-into root.sg_copy.d1(::), rot.sg_copy.d2(s1), root.sg_copy.d1(${3}), root.sg_copy.d2(::),
+into root.sg_copy.d1(::), root.sg_copy.d2(s1), root.sg_copy.d1(${3}), root.sg_copy.d2(::)
 from root.sg.d1, root.sg.d2;
 ```
 该语句等价于:
 ```sql
 select s1, s2
-into root.sg_copy.d1(s1), rot.sg_copy.d2(s1), root.sg_copy.d1(s2), root.sg_copy.d2(s2),
+into root.sg_copy.d1(s1), root.sg_copy.d2(s1), root.sg_copy.d1(s2), root.sg_copy.d2(s2)
 from root.sg.d1, root.sg.d2;
 ```
 可以看到,在这种情况下,语句并不能得到很好地简化。
@@ -214,7 +210,7 @@ select * into root.sg_bk.::(::) from root.sg.**;
 
 #### 按设备对齐(使用 `ALIGN BY DEVICE`)
 
-> 注:如果查询中包含聚合、表达式计算,此时查询结果中的列无法与某个物理量对应,因此目标物理量不能使用变量占位符。
+> 注:变量占位符**只能描述序列与序列之间的对应关系**,如果查询中包含聚合、表达式计算,此时查询结果中的列无法与某个物理量对应,因此目标物理量不能使用变量占位符。
 
 ##### (1)目标设备不使用变量占位符 & 目标物理量列表使用变量占位符
 
@@ -260,10 +256,16 @@ select * into ::(backup_${4}) from root.sg.** align by device;
 
 通过 `ALIGNED` 关键词可以指定写入的目标设备为对齐写入,每个 `intoItem` 可以独立设置。
 
+**示例:**
+```sql
+select s1, s2 into root.sg_copy.d1(t1, t2), aligned root.sg_copy.d2(t1, t2) from root.sg.d1, root.sg.d2 align by device;
+```
+该语句指定了 `root.sg_copy.d1` 是非对齐设备,`root.sg_copy.d2`是对齐设备。
+
 ### 不支持使用的查询子句
 
 - `SLIMIT`、`SOFFSET`:查询出来的列不确定,功能不清晰,因此不支持。
-- `LAST`、`GROUP BY TAGS`、`DISABLE ALIGN`:表结构和写入结构不一致,因此不支持。
+- `LAST`查询、`GROUP BY TAGS`、`DISABLE ALIGN`:表结构和写入结构不一致,因此不支持。
 
 ### 其他要注意的点
 
@@ -309,7 +311,7 @@ It costs 0.115s
 以上语句将降采样查询的结果持久化存储到新序列中。
 
 ### 非对齐序列转对齐序列
-对齐序列从 0.13 版本开始支持,可以通过该功能将历史的非对齐序列重新写成对齐序列。
+对齐序列从 0.13 版本开始支持,可以通过该功能将非对齐序列的数据写入新的对齐序列中。
 
 **注意:** 建议配合使用 `LIMIT & OFFSET` 子句或 `WHERE` 子句(时间过滤条件)对数据进行分批,防止单次操作的数据量过大。
 


[iotdb] 01/09: update query overview

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit c87ae422c0ce0f6d299ae29e2a32d07720875771
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 15:01:02 2022 +0800

    update query overview
---
 docs/UserGuide/Query-Data/Overview.md    | 16 ++++++++--------
 docs/zh/UserGuide/Query-Data/Overview.md | 16 ++++++++--------
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Overview.md b/docs/UserGuide/Query-Data/Overview.md
index 28b8ad2002..ab751b8ec2 100644
--- a/docs/UserGuide/Query-Data/Overview.md
+++ b/docs/UserGuide/Query-Data/Overview.md
@@ -26,25 +26,25 @@
 In IoTDB, `SELECT` statement is used to retrieve data from one or more selected time series. Here is the syntax definition of `SELECT` statement:
 
 ```sql
-[TRACING] SELECT
-    [LAST] [TOP k] resultColumn [, resultColumn] ...
+SELECT [LAST] resultColumn [, resultColumn] ...
+    [INTO intoItem [, intoItem] ...]
     FROM prefixPath [, prefixPath] ...
-    WHERE whereCondition
+    [WHERE whereCondition]
     [GROUP BY ([startTime, endTime), interval, slidingStep)]
     [GROUP BY LEVEL = levelNum [, levelNum] ...]
-    [FILL ({PREVIOUS, beforeRange | LINEAR, beforeRange, afterRange | constant})]
+    [FILL ({PREVIOUS | LINEAR | constant})]
+    [HAVING havingCondition]
+    [ORDER BY TIME {ASC | DESC}]
     [LIMIT rowLimit] [OFFSET rowOffset]
     [SLIMIT seriesLimit] [SOFFSET seriesOffset]
-    [WITHOUT NULL {ANY | ALL} [resultColumn [, resultColumn] ...]]
-    [ORDER BY TIME {ASC | DESC}]
-    [{ALIGN BY DEVICE | DISABLE ALIGN}]
+    [ALIGN BY DEVICE]
 ```
 
 The most commonly used clauses of `SELECT` statements are these:
 
 - Each `resultColumn` indicates a column that you want to retrieve, which may be a suffix of time series paths, an aggregate function and so on. There must be at least one `resultColumn`.  For more details for `resultColumn`, please refer to [Select Expression](./Select-Expression.md) .
 - `fromClause` contains the prefix of one or more time-series paths to query.
-- `whereCondition` (Optional) specify the filter criterion named ` queryfilter`. `queryfilter` is a logical expression that returns the data points which calculation result is TRUE. If you do not specify `whereCondition`, return all data points in the time series. For more details, please refer to [Query Filter](./Query-Filter.md).
+- `whereCondition` is a logical expression that returns the data points which calculation result is TRUE. If you do not specify `whereCondition`, return all data points in the time series. For more details, please refer to [Query Filter](./Query-Filter.md).
 - The query results are sorted in ascending order by timestamp. You can specify the results to be sorted in descending order by timestamp through `ORDER BY TIME DESC` clause.
 - When there is a large amount of query result data, you can use `LIMIT/SLIMIT` and `OFFSET/SOFFSET` to paginate the result set, see [Query Result Pagination](./Pagination.md) for details.
 - The query result set is aligned according to the timestamp by default, that is, the time series is used as the column, and the timestamp of each row of data is the same. For other result set alignments, see [Query Result Alignment](./Result-Format.md).
diff --git a/docs/zh/UserGuide/Query-Data/Overview.md b/docs/zh/UserGuide/Query-Data/Overview.md
index a2f1e65952..98f1bce56f 100644
--- a/docs/zh/UserGuide/Query-Data/Overview.md
+++ b/docs/zh/UserGuide/Query-Data/Overview.md
@@ -26,25 +26,25 @@
 在 IoTDB 中,使用 `SELECT` 语句从一条或多条时间序列中查询数据。 下面是 `SELECT` 语句的语法定义:
 
 ```sql
-[TRACING] SELECT
-    [LAST] [TOP k] resultColumn [, resultColumn] ...
+SELECT [LAST] resultColumn [, resultColumn] ...
+    [INTO intoItem [, intoItem] ...]
     FROM prefixPath [, prefixPath] ...
-    WHERE whereCondition
+    [WHERE whereCondition]
     [GROUP BY ([startTime, endTime), interval, slidingStep)]
     [GROUP BY LEVEL = levelNum [, levelNum] ...]
-    [FILL ({PREVIOUS, beforeRange | LINEAR, beforeRange, afterRange | constant})]
+    [FILL ({PREVIOUS | LINEAR | constant})]
+    [HAVING havingCondition]
+    [ORDER BY TIME {ASC | DESC}]
     [LIMIT rowLimit] [OFFSET rowOffset]
     [SLIMIT seriesLimit] [SOFFSET seriesOffset]
-    [WITHOUT NULL {ANY | ALL} [resultColumn [, resultColumn] ...]]
-    [ORDER BY TIME {ASC | DESC}]
-    [{ALIGN BY DEVICE | DISABLE ALIGN}]
+    [ALIGN BY DEVICE]
 ```
 
 常用的子句如下:
 
 - 每个 `resultColumn` 对应查询结果的一列,支持时间序列后缀、时间序列生成函数(包括用户自定义函数)、聚合函数、数字常量、算数运算表达式。每个 `SELECT` 语句至少应该包含一个 `resultColumn` 。关于 `resultColumn`,详见 [选择表达式](./Select-Expression.md) 。
 - `fromClause` 包含要查询的一个或多个时间序列的前缀。
-- `whereCondition`(可选)指定了查询的筛选条件 `queryFilter`。`queryFilter` 是一个逻辑表达式,查询结果返回计算结果为真的数据点。如果没有指定 `whereCondition`,则返回序列中所有数据点。关于 `queryFilter`,详见 [查询过滤条件](./Query-Filter.md) 。
+- `whereCondition` 指定了查询的筛选条件。`whereCondition` 是一个逻辑表达式,查询结果返回计算结果为真的数据点。如果没有指定 `whereCondition`,则返回序列中所有数据点。关于 `whereCondition`,详见 [查询过滤条件](./Query-Filter.md) 。
 - 查询结果默认按照时间戳大小升序排列,可以通过 `ORDER BY TIME DESC` 指定结果集按照时间戳大小降序排列。
 - 当查询结果数据量很大时,可以使用 `LIMIT/SLIMIT` 及 `OFFSET/SOFFSET` 对结果集进行分页,详见 [查询结果分页](./Pagination.md) 。
 - 查询结果集默认按照时间戳进行对齐,即以时间序列为列,每一行数据各列的时间戳相同。其他结果集对齐方式详见 [查询结果对齐格式](./Result-Format.md) 。


[iotdb] 05/09: update Select-Expression

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 47cafef4fdbe0bce0f818a7839500ca261f5a059
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:40:27 2022 +0800

    update Select-Expression
---
 docs/UserGuide/Query-Data/Select-Expression.md    | 14 --------------
 docs/zh/UserGuide/Query-Data/Select-Expression.md | 14 --------------
 2 files changed, 28 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Select-Expression.md b/docs/UserGuide/Query-Data/Select-Expression.md
index 8df849d69e..8241b38762 100644
--- a/docs/UserGuide/Query-Data/Select-Expression.md
+++ b/docs/UserGuide/Query-Data/Select-Expression.md
@@ -1293,20 +1293,6 @@ It costs 0.012s
 - Only when the left operand and the right operand under a certain timestamp are not `null`, the nested expressions will have an output value. Otherwise this row will not be included in the result. But for nested expressions with `GROUP BY` clause, it is better to show the result of all time intervals. Please refer to Input3 and corresponding Result3 in Example.
 - If one operand in the nested expressions can be translated into multiple time series (For example, `*`), the result of each time series will be included in the result (Cartesian product). Please refer to Input2 and corresponding Result2 in Example.
 
-##### Note
-
-> Automated fill (`FILL`) and grouped by level (`GROUP BY LEVEL`) are not supported in an aggregation query with expression nested. They may be supported in future versions.
->
-> The aggregation expression must be the lowest level input of one expression tree. Any kind expressions except timeseries are not valid as aggregation function parameters。
->
-> In a word, the following queries are not valid.
->
-> ```sql
-> SELECT avg(s1+1) FROM root.sg.d1; -- The aggregation function has expression parameters.
-> SELECT avg(s1) + avg(s2) FROM root.sg.* GROUP BY LEVEL=1; -- Grouped by level
-> SELECT avg(s1) + avg(s2) FROM root.sg.d1 GROUP BY([0, 10000), 1s) FILL(previous); -- Automated fill
-> ```
-
 ## Use Alias
 
 Since the unique data model of IoTDB, lots of additional information like device will be carried before each sensor. Sometimes, we want to query just one specific device, then these prefix information show frequently will be redundant in this situation, influencing the analysis of result set. At this time, we can use `AS` function provided by IoTDB, assign an alias to time series selected in query.  
diff --git a/docs/zh/UserGuide/Query-Data/Select-Expression.md b/docs/zh/UserGuide/Query-Data/Select-Expression.md
index 2db8fc662d..9939b22156 100644
--- a/docs/zh/UserGuide/Query-Data/Select-Expression.md
+++ b/docs/zh/UserGuide/Query-Data/Select-Expression.md
@@ -1293,20 +1293,6 @@ It costs 0.012s
 - 当某个时间戳下左操作数和右操作数都不为空(`null`)时,表达式才会有结果,否则表达式值为`null`,且默认不出现在结果集中。但在使用`GROUP BY`子句的聚合查询嵌套表达式中,我们希望保留每个时间窗口的值,所以表达式值为`null`的窗口也包含在结果集中。请参考输入3及结果集3。
 - 如果表达式中某个操作数对应多条时间序列(如通配符`*`),那么每条时间序列对应的结果都会出现在结果集中(按照笛卡尔积形式)。请参考输入2及结果集2。
 
-#### 注意
-
-> 目前此功能尚不支持填充算子(`FILL`)和按层级聚合(`GROUP BY LEVEL`)查询, 在后续版本会支持。
->
-> 聚合计算目前只能当做最底层表达式输入,暂不支持聚合函数内部出现表达式。
->
-> 即不支持以下查询
->
-> ```SQL
-> SELECT avg(s1 + 1) FROM root.sg.d1; -- 聚合函数内部有表达式
-> SELECT avg(s1) + avg(s2) FROM root.sg.* GROUP BY LEVEL=1; -- 按层级聚合
-> SELECT avg(s1) + avg(s2) FROM root.sg.d1 GROUP BY([0, 10000), 1s) FILL(previous); -- 空值填充 
-> ```
-
 ## 使用别名
 
 由于 IoTDB 独特的数据模型,在每个传感器前都附带有设备等诸多额外信息。有时,我们只针对某个具体设备查询,而这些前缀信息频繁显示造成了冗余,影响了结果集的显示与分析。这时我们可以使用 IoTDB 提供的 AS 函数,将查询中出现的时间序列给定一个别名。


[iotdb] 08/09: update error code

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit de6df1cb8c5bc67008f6de8852fa1fc247c7b21f
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:49:11 2022 +0800

    update error code
---
 docs/UserGuide/Query-Data/Pagination.md    | 2 +-
 docs/zh/UserGuide/Query-Data/Pagination.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Pagination.md b/docs/UserGuide/Query-Data/Pagination.md
index 9bb61ec14b..c993888464 100644
--- a/docs/UserGuide/Query-Data/Pagination.md
+++ b/docs/UserGuide/Query-Data/Pagination.md
@@ -296,7 +296,7 @@ select status,temperature from root.ln.wf01.wt01 where time > 2017-11-01T00:05:0
 The SQL statement will not be executed and the corresponding error prompt is given as follows:
 
 ```
-Msg: 303: check metadata error: Out of range. LIMIT <N>: N should be Int32.
+Msg: 416: Out of range. LIMIT <N>: N should be Int32.
 ```
 
 If the parameter N/SN of LIMIT/SLIMIT clause is not a positive intege, the system prompts errors. For example, executing the following SQL statement:
diff --git a/docs/zh/UserGuide/Query-Data/Pagination.md b/docs/zh/UserGuide/Query-Data/Pagination.md
index 06da5bba3e..f2766807c9 100644
--- a/docs/zh/UserGuide/Query-Data/Pagination.md
+++ b/docs/zh/UserGuide/Query-Data/Pagination.md
@@ -303,7 +303,7 @@ select status,temperature from root.ln.wf01.wt01 where time > 2017-11-01T00:05:0
 SQL 语句将不会执行,并且相应的错误提示如下:
 
 ```
-Msg: 303: check metadata error: Out of range. LIMIT <N>: N should be Int32.
+Msg: 416: Out of range. LIMIT <N>: N should be Int32.
 ```
 
 当 `LIMIT / LIMIT` 子句的参数 `N / SN` 不是正整数时,系统将提示错误。 例如,执行以下 SQL 语句:


[iotdb] 06/09: update Query-Filter

Posted by hu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hui pushed a commit to branch lmh/docUpdate
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit bbba3030e040c049af3dd13b46f85458aab26940
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Wed Nov 2 16:43:12 2022 +0800

    update Query-Filter
---
 docs/UserGuide/Query-Data/Query-Filter.md    | 7 ++-----
 docs/zh/UserGuide/Query-Data/Query-Filter.md | 6 ++----
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/docs/UserGuide/Query-Data/Query-Filter.md b/docs/UserGuide/Query-Data/Query-Filter.md
index 91ef5722bf..9811148c16 100644
--- a/docs/UserGuide/Query-Data/Query-Filter.md
+++ b/docs/UserGuide/Query-Data/Query-Filter.md
@@ -95,16 +95,13 @@ An example is as follows:
     select code from root.sg1.d1 where code not in ('200', '300', '400', '500');
     ````
 
-## Null Filter
-Use null filters to filter data whose data value is null or not.
-
-1. Select data with values is null:
+6. Select data with values is null:
 
     ```sql
     select code from root.sg1.d1 where temperature is null;
     ````
 
-2. Select data with values is not null:
+7. Select data with values is not null:
 
     ```sql
     select code from root.sg1.d1 where temperature is not null;
diff --git a/docs/zh/UserGuide/Query-Data/Query-Filter.md b/docs/zh/UserGuide/Query-Data/Query-Filter.md
index a53f1c7994..f22cbf2313 100644
--- a/docs/zh/UserGuide/Query-Data/Query-Filter.md
+++ b/docs/zh/UserGuide/Query-Data/Query-Filter.md
@@ -94,15 +94,13 @@
    select code from root.sg1.d1 where code not in ('200', '300', '400', '500');
    ```
 
-## 空值过滤
-使用空值过滤条件可以筛选出值为空或非空的数据
-1. 选择值为空的数据:
+6. 选择值为空的数据:
 
     ```sql
     select code from root.sg1.d1 where temperature is null;
     ````
 
-2. 选择值为非空的数据:
+7. 选择值为非空的数据:
 
     ```sql
     select code from root.sg1.d1 where temperature is not null;