Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4abedc2f
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4abedc2f
编写于
4月 12, 2022
作者:
W
wade zhang
提交者:
GitHub
4月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11384 from taosdata/docs/TD-14651
docs: refine a series of documents
上级
214cbcfb
ed66ea1a
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
393 addition
and
321 deletion
+393
-321
docs-cn/01-intro/01-intro.md
docs-cn/01-intro/01-intro.md
+1
-1
docs-cn/05-model/index.mdx
docs-cn/05-model/index.mdx
+4
-4
docs-cn/14-reference/01-taos-sql/01-data-type.md
docs-cn/14-reference/01-taos-sql/01-data-type.md
+8
-8
docs-cn/14-reference/01-taos-sql/04-stable.md
docs-cn/14-reference/01-taos-sql/04-stable.md
+4
-1
docs-cn/14-reference/01-taos-sql/06-select.md
docs-cn/14-reference/01-taos-sql/06-select.md
+49
-42
docs-cn/14-reference/01-taos-sql/07-function.md
docs-cn/14-reference/01-taos-sql/07-function.md
+285
-264
docs-cn/14-reference/01-taos-sql/index.md
docs-cn/14-reference/01-taos-sql/index.md
+1
-1
docs-cn/14-reference/12-directory.md
docs-cn/14-reference/12-directory.md
+41
-0
未找到文件。
docs-cn/01-intro/01-intro.md
浏览文件 @
4abedc2f
...
@@ -32,7 +32,7 @@ TDengine 是一款高性能、分布式、支持 SQL 的时序数据库。而且
...
@@ -32,7 +32,7 @@ TDengine 是一款高性能、分布式、支持 SQL 的时序数据库。而且
## TDengine 总体适用场景
## TDengine 总体适用场景
作为一个
IoT 大数据平台,TDengine 的典型适用场景是在 IoT 范畴,而且用户有一定的数据量。本文后续的介绍主要针对这个范畴里面的系统。范畴之外的系统,比如 CRM,ERP 等,不在本文讨论范围内
。
作为一个
高性能、分布式、支持 SQL 的时序数据库,TDengine 的典型适用场景包括但不限于 IoT 和 DevOps,尤其是在大数据量的情况下。本文后续的介绍主要针对这些应用场景
。
### 数据源特点和需求
### 数据源特点和需求
...
...
docs-cn/05-model/index.mdx
浏览文件 @
4abedc2f
...
@@ -9,7 +9,7 @@ TDengine 采用关系型数据模型,需要建库、建表。因此对于一
...
@@ -9,7 +9,7 @@ TDengine 采用关系型数据模型,需要建库、建表。因此对于一
## 创建库
## 创建库
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作,TDengine 建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除 SQL 标准的选项外,
应用
还可以指定保留时长、副本数、内存块个数、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作,TDengine 建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除 SQL 标准的选项外,还可以指定保留时长、副本数、内存块个数、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
```sql
```sql
CREATE DATABASE power KEEP 365 DAYS 10 BLOCKS 6 UPDATE 1;
CREATE DATABASE power KEEP 365 DAYS 10 BLOCKS 6 UPDATE 1;
...
@@ -27,7 +27,7 @@ USE power;
...
@@ -27,7 +27,7 @@ USE power;
:::note
:::note
- 任何一张表或超级表
是属于一个库的
,在创建表之前,必须先创建库。
- 任何一张表或超级表
必须属于某个库
,在创建表之前,必须先创建库。
- 处于两个不同库的表是不能进行 JOIN 操作的。
- 处于两个不同库的表是不能进行 JOIN 操作的。
- 创建并插入记录、查询历史记录的时候,均需要指定时间戳。
- 创建并插入记录、查询历史记录的时候,均需要指定时间戳。
...
@@ -45,9 +45,9 @@ CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAG
...
@@ -45,9 +45,9 @@ CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAG
这一指令中的 STABLE 关键字,在 2.0.15 之前的版本中需写作 TABLE 。
这一指令中的 STABLE 关键字,在 2.0.15 之前的版本中需写作 TABLE 。
:::
:::
与创建普通表一样,创建表时,需要提供表名(示例中为 meters),表结构 Schema,即数据列的定义。第一列必须为时间戳(示例中为 ts),其他列为采集的物理量(示例中为 current, voltage, phase),数据类型可以为整型、浮点型、字符串等。除此之外,还需要提供标签的 schema (示例中为 location, groupId),标签的数据类型可以为整型、浮点型、字符串等。采集点的静态属性往往可以作为标签,比如采集点的地理位置、设备型号、设备组 ID、管理员 ID 等等。标签的 schema 可以事后增加、删除、修改。具体定义以及细节请见 [TAOS SQL 的超级表管理](/reference/taos-sql/stable) 章节。
与创建普通表一样,创建
超级
表时,需要提供表名(示例中为 meters),表结构 Schema,即数据列的定义。第一列必须为时间戳(示例中为 ts),其他列为采集的物理量(示例中为 current, voltage, phase),数据类型可以为整型、浮点型、字符串等。除此之外,还需要提供标签的 schema (示例中为 location, groupId),标签的数据类型可以为整型、浮点型、字符串等。采集点的静态属性往往可以作为标签,比如采集点的地理位置、设备型号、设备组 ID、管理员 ID 等等。标签的 schema 可以事后增加、删除、修改。具体定义以及细节请见 [TAOS SQL 的超级表管理](/reference/taos-sql/stable) 章节。
每一种类型的数据采集点需要建立一个超级表,因此一个物联网系统,往往会有多个超级表。对于电网,我们就需要对智能电表、变压器、母线、开关等都建立一个超级表。在物联网中,一个设备就可能有多个数据采集点(比如一台风力发电的风机,有的采集点采集电流、电压等电参数,有的采集点采集温度、湿度、风向等环境参数),这个时候,对这一类型的设备,需要建立多张超级表。
一张超级表里包含的采集物理量必须是同时采集的(时间戳是一致的)。
每一种类型的数据采集点需要建立一个超级表,因此一个物联网系统,往往会有多个超级表。对于电网,我们就需要对智能电表、变压器、母线、开关等都建立一个超级表。在物联网中,一个设备就可能有多个数据采集点(比如一台风力发电的风机,有的采集点采集电流、电压等电参数,有的采集点采集温度、湿度、风向等环境参数),这个时候,对这一类型的设备,需要建立多张超级表。
一张超级表最多容许 1024 列,如果一个采集点采集的物理量个数超过 1024,需要建多张超级表来处理。一个系统可以有多个 DB,一个 DB 里可以有一到多个超级表。(从 2.1.7.0 版本开始,列数限制由 1024 列放宽到了 4096 列。)
一张超级表最多容许 1024 列,如果一个采集点采集的物理量个数超过 1024,需要建多张超级表来处理。一个系统可以有多个 DB,一个 DB 里可以有一到多个超级表。(从 2.1.7.0 版本开始,列数限制由 1024 列放宽到了 4096 列。)
...
...
docs-cn/14-reference/01-taos-sql/01-data-type.md
浏览文件 @
4abedc2f
...
@@ -8,10 +8,10 @@ title: 支持的数据类型
...
@@ -8,10 +8,10 @@ title: 支持的数据类型
-
时间格式为
`YYYY-MM-DD HH:mm:ss.MS`
,默认时间分辨率为毫秒。比如:
`2017-08-12 18:25:58.128`
-
时间格式为
`YYYY-MM-DD HH:mm:ss.MS`
,默认时间分辨率为毫秒。比如:
`2017-08-12 18:25:58.128`
-
内部函数 now 是客户端的当前时间
-
内部函数 now 是客户端的当前时间
-
插入记录时,如果时间戳为 now,插入数据时使用提交这条记录的客户端的当前时间
-
插入记录时,如果时间戳为 now,插入数据时使用提交这条记录的客户端的当前时间
-
Epoch Time:时间戳也可以是一个长整数,表示从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的毫秒数(相应地,如果所在 Database 的时间精度设置为“微秒”,则长整型格式的时间戳含义也就对应于从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的微秒数;纳秒精度
的逻辑也是类似的
。)
-
Epoch Time:时间戳也可以是一个长整数,表示从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的毫秒数(相应地,如果所在 Database 的时间精度设置为“微秒”,则长整型格式的时间戳含义也就对应于从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的微秒数;纳秒精度
逻辑类似
。)
-
时间可以加减,比如 now-2h,表明查询时刻向前推 2 个小时(最近 2 小时)。数字后面的时间单位可以是 b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。 比如
`select * from t1 where ts > now-2w and ts <= now-1w`
,表示查询两周前整整一周的数据。在指定降采样操作(down sampling)的时间窗口(interval)时,时间单位还可以使用 n
(自然月) 和 y
(自然年)。
-
时间可以加减,比如 now-2h,表明查询时刻向前推 2 个小时(最近 2 小时)。数字后面的时间单位可以是 b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。 比如
`select * from t1 where ts > now-2w and ts <= now-1w`
,表示查询两周前整整一周的数据。在指定降采样操作(down sampling)的时间窗口(interval)时,时间单位还可以使用 n
(自然月) 和 y
(自然年)。
TDengine 缺省的时间戳
是毫秒精度,但通过在
`CREATE DATABASE`
时传递的 PRECISION 参数就
可以支持微秒和纳秒。(从 2.1.5.0 版本开始支持纳秒精度)
TDengine 缺省的时间戳
精度是毫秒,但通过在
`CREATE DATABASE`
时传递的 PRECISION 参数也
可以支持微秒和纳秒。(从 2.1.5.0 版本开始支持纳秒精度)
```
```
CREATE DATABASE db_name PRECISION 'ns';
CREATE DATABASE db_name PRECISION 'ns';
...
@@ -23,15 +23,15 @@ CREATE DATABASE db_name PRECISION 'ns';
...
@@ -23,15 +23,15 @@ CREATE DATABASE db_name PRECISION 'ns';
| --- | :-------: | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| --- | :-------: | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | TIMESTAMP | 8 | 时间戳。缺省精度毫秒,可支持微秒和纳秒。从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始,计时不能早于该时间。(从 2.0.18.0 版本开始,已经去除了这一时间范围限制)(从 2.1.5.0 版本开始支持纳秒精度) |
| 1 | TIMESTAMP | 8 | 时间戳。缺省精度毫秒,可支持微秒和纳秒。从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始,计时不能早于该时间。(从 2.0.18.0 版本开始,已经去除了这一时间范围限制)(从 2.1.5.0 版本开始支持纳秒精度) |
| 2 | INT | 4 | 整型,范围 [-2^31+1, 2^31-1], -2^31 用作 NULL |
| 2 | INT | 4 | 整型,范围 [-2^31+1, 2^31-1], -2^31 用作 NULL |
| 3 | BIGINT | 8 | 长整型,范围 [-2^63+1, 2^63-1], -2^63 用
于
NULL |
| 3 | BIGINT | 8 | 长整型,范围 [-2^63+1, 2^63-1], -2^63 用
作
NULL |
| 4 | FLOAT | 4 | 浮点型,有效位数 6-7,范围 [-3.4E38, 3.4E38] |
| 4 | FLOAT | 4 | 浮点型,有效位数 6-7,范围 [-3.4E38, 3.4E38] |
| 5 | DOUBLE | 8 | 双精度浮点型,有效位数 15-16,范围 [-1.7E308, 1.7E308] |
| 5 | DOUBLE | 8 | 双精度浮点型,有效位数 15-16,范围 [-1.7E308, 1.7E308] |
| 6 | BINARY | 自定义 | 记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 nchar。理论上,最长可以有 16374 字节。binary 仅支持字符串输入,字符串两端需使用单引号引用。使用时须指定大小,如 binary(20) 定义了最长为 20 个单字节字符的字符串,每个字符占 1 byte 的存储空间,总共固定占用 20 bytes 的空间,此时如果用户字符串超出 20 字节将会报错。对于字符串内的单引号,可以用转义字符反斜线加单引号来表示,即
`\’`
。 |
| 6 | BINARY | 自定义 | 记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 nchar。理论上,最长可以有 16374 字节。binary 仅支持字符串输入,字符串两端需使用单引号引用。使用时须指定大小,如 binary(20) 定义了最长为 20 个单字节字符的字符串,每个字符占 1 byte 的存储空间,总共固定占用 20 bytes 的空间,此时如果用户字符串超出 20 字节将会报错。对于字符串内的单引号,可以用转义字符反斜线加单引号来表示,即
`\’`
。 |
| 7 | SMALLINT | 2 | 短整型, 范围 [-32767, 32767], -32768 用
于
NULL |
| 7 | SMALLINT | 2 | 短整型, 范围 [-32767, 32767], -32768 用
作
NULL |
| 8 | TINYINT | 1 | 单字节整型,范围 [-127, 127], -128 用
于
NULL |
| 8 | TINYINT | 1 | 单字节整型,范围 [-127, 127], -128 用
作
NULL |
| 9 | BOOL | 1 | 布尔型,{true, false} |
| 9 | BOOL | 1 | 布尔型,{true, false} |
| 10 | NCHAR | 自定义 | 记录包含多字节字符在内的字符串,如中文字符。每个 nchar 字符占用 4 bytes 的存储空间。字符串两端使用单引号引用,字符串内的单引号需用转义字符
`\’`
。nchar 使用时须指定字符串大小,类型为 nchar(10) 的列表示此列的字符串最多存储 10 个 nchar 字符,会固定占用 40 bytes 的空间。如果用户字符串长度超出声明长度,将会报错。 |
| 10 | NCHAR | 自定义 | 记录包含多字节字符在内的字符串,如中文字符。每个 nchar 字符占用 4 bytes 的存储空间。字符串两端使用单引号引用,字符串内的单引号需用转义字符
`\’`
。nchar 使用时须指定字符串大小,类型为 nchar(10) 的列表示此列的字符串最多存储 10 个 nchar 字符,会固定占用 40 bytes 的空间。如果用户字符串长度超出声明长度,将会报错。 |
| 11 | JSON | | json 数据类型, 只有 tag
类型
可以是 json 格式 |
| 11 | JSON | | json 数据类型, 只有 tag 可以是 json 格式 |
<!-- REPLACE_OPEN_TO_ENTERPRISE__COLUMN_TYPE_ADDONS -->
<!-- REPLACE_OPEN_TO_ENTERPRISE__COLUMN_TYPE_ADDONS -->
...
@@ -41,7 +41,7 @@ TDengine 对 SQL 语句中的英文字符不区分大小写,自动转化为小
...
@@ -41,7 +41,7 @@ TDengine 对 SQL 语句中的英文字符不区分大小写,自动转化为小
:::
:::
:::note
:::note
虽然 B
inary 类型在底层存储上支持字节型的二进制字符,但不同编程语言对二进制数据的处理方式并不保证一致,因此建议在 Binary 类型中只存储 ASCII 可见字符,而避免存储不可见字符。多字节的数据,例如中文字符,则需要使用 nchar 类型进行保存。如果强行使用 Binary
类型保存中文字符,虽然有时也能正常读写,但并不带有字符集信息,很容易出现数据乱码甚至数据损坏等情况。
虽然 B
INARY 类型在底层存储上支持字节型的二进制字符,但不同编程语言对二进制数据的处理方式并不保证一致,因此建议在 BINARY 类型中只存储 ASCII 可见字符,而避免存储不可见字符。多字节的数据,例如中文字符,则需要使用 NCHAR 类型进行保存。如果强行使用 BINARY
类型保存中文字符,虽然有时也能正常读写,但并不带有字符集信息,很容易出现数据乱码甚至数据损坏等情况。
:::
:::
...
...
docs-cn/14-reference/01-taos-sql/04-stable.md
浏览文件 @
4abedc2f
...
@@ -3,8 +3,11 @@ sidebar_label: 超级表管理
...
@@ -3,8 +3,11 @@ sidebar_label: 超级表管理
title
:
超级表 STable 管理
title
:
超级表 STable 管理
---
---
:::note
注意:在 2.0.15.0 及以后的版本中,开始支持 STABLE 保留字。也即,在本节后文的指令说明中,CREATE、DROP、ALTER 三个指令在老版本中保留字需写作 TABLE 而不是 STABLE。
在 2.0.15.0 及以后的版本中开始支持 STABLE 保留字。也即,在本节后文的指令说明中,CREATE、DROP、ALTER 三个指令在 2.0.15.0 之前的版本中 STABLE 保留字需写作 TABLE。
:::
## 创建超级表
## 创建超级表
...
...
docs-cn/14-reference/01-taos-sql/06-select.md
浏览文件 @
4abedc2f
...
@@ -221,42 +221,43 @@ Query OK, 1 row(s) in set (0.000081s)
...
@@ -221,42 +221,43 @@ Query OK, 1 row(s) in set (0.000081s)
## \_block_dist 函数
## \_block_dist 函数
用于获得指定的(超级)表的数据块分布信息
**功能说明**
:
用于获得指定的(超级)表的数据块分布信息
```
txt title="语法"
```
txt title="语法"
SELECT _block_dist() FROM { tb_name | stb_name }
SELECT _block_dist() FROM { tb_name | stb_name }
```
```
返回结果类型
:字符串。
**返回结果类型**
:字符串。
适用数据类型
:不能输入任何参数。
**适用数据类型**
:不能输入任何参数。
嵌套子查询支持
:不支持子查询或嵌套查询。
**嵌套子查询支持**
:不支持子查询或嵌套查询。
返回 FROM 子句中输入的表或超级表的数据块分布情况。不支持查询条件。
**返回结果**
:
返回的结果是该表或超级表的数据块所包含的行数的数据分布直方图。
-
返回 FROM 子句中输入的表或超级表的数据块分布情况。不支持查询条件。
-
返回的结果是该表或超级表的数据块所包含的行数的数据分布直方图。
```
txt title="返回结果"
```
txt title="返回结果"
summary:
summary:
5th=[392], 10th=[392], 20th=[392], 30th=[392], 40th=[792], 50th=[792] 60th=[792], 70th=[792], 80th=[792], 90th=[792], 95th=[792], 99th=[792] Min=[392(Rows)] Max=[800(Rows)] Avg=[666(Rows)] Stddev=[2.17] Rows=[2000], Blocks=[3], Size=[5.440(Kb)] Comp=[0.23] RowsInMem=[0] SeekHeaderTime=[1(us)]
5th=[392], 10th=[392], 20th=[392], 30th=[392], 40th=[792], 50th=[792] 60th=[792], 70th=[792], 80th=[792], 90th=[792], 95th=[792], 99th=[792] Min=[392(Rows)] Max=[800(Rows)] Avg=[666(Rows)] Stddev=[2.17] Rows=[2000], Blocks=[3], Size=[5.440(Kb)] Comp=[0.23] RowsInMem=[0] SeekHeaderTime=[1(us)]
```
```
上述信息的说明如下:
**上述信息的说明如下**
:
1.
查询的(超级)表所包含的存储在文件中的数据块(data block)中所包含的数据行的数量分布直方图信息:5%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%, 99% 的数值;
-
查询的(超级)表所包含的存储在文件中的数据块(data block)中所包含的数据行的数量分布直方图信息:5%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%, 99% 的数值;
2.
所有数据块中,包含行数最少的数据块所包含的行数量, 其中的 Min 指标 392 行。
-
所有数据块中,包含行数最少的数据块所包含的行数量, 其中的 Min 指标 392 行。
3.
所有数据块中,包含行数最多的数据块所包含的行数量, 其中的 Max 指标 800 行。
-
所有数据块中,包含行数最多的数据块所包含的行数量, 其中的 Max 指标 800 行。
4.
所有数据块行数的算数平均值 666 行(其中的 Avg 项)。
-
所有数据块行数的算数平均值 666 行(其中的 Avg 项)。
5.
所有数据块中行数分布的均方差为 2.17 ( stddev )。
-
所有数据块中行数分布的均方差为 2.17 ( stddev )。
6.
数据块包含的行的总数为 2000 行(Rows)。
-
数据块包含的行的总数为 2000 行(Rows)。
7.
数据块总数是 3 个数据块 (Blocks)。
-
数据块总数是 3 个数据块 (Blocks)。
8.
数据块占用磁盘空间大小 5.44 Kb (size)。
-
数据块占用磁盘空间大小 5.44 Kb (size)。
9.
压缩后的数据块的大小除以原始数据的所获得的压缩比例: 23%(Comp),及压缩后的数据规模是原始数据规模的 23%。
-
压缩后的数据块的大小除以原始数据的所获得的压缩比例: 23%(Comp),及压缩后的数据规模是原始数据规模的 23%。
10.
内存中存在的数据行数是 0,表示内存中没有数据缓存。
-
内存中存在的数据行数是 0,表示内存中没有数据缓存。
11.
获取数据块信息的过程中读取头文件的时间开销 1 微秒(SeekHeaderTime)。
-
获取数据块信息的过程中读取头文件的时间开销 1 微秒(SeekHeaderTime)。
支持版本
:指定计算算法的功能从 2.1.0.x 版本开始,2.1.0.0 之前的版本不支持指定使用算法的功能。
**支持版本**
:指定计算算法的功能从 2.1.0.x 版本开始,2.1.0.0 之前的版本不支持指定使用算法的功能。
## TAOS SQL 中特殊关键词
## TAOS SQL 中特殊关键词
...
@@ -322,18 +323,20 @@ Query OK, 1 row(s) in set (0.001091s)
...
@@ -322,18 +323,20 @@ Query OK, 1 row(s) in set (0.001091s)
| like | match a wildcard string |
**`binary`**
**`nchar`**
|
| like | match a wildcard string |
**`binary`**
**`nchar`**
|
| match/nmatch | filter regex |
**`binary`**
**`nchar`**
|
| match/nmatch | filter regex |
**`binary`**
**`nchar`**
|
1.
<
\>
算子也可以写为 != ,请注意,这个算子不能用于数据表第一列的 timestamp 字段。
**使用说明**
:
2.
like 算子使用通配符字符串进行匹配检查。
-
<
\>
算子也可以写为 != ,请注意,这个算子不能用于数据表第一列的 timestamp 字段。
-
like 算子使用通配符字符串进行匹配检查。
-
在通配符字符串中:'%'(百分号)匹配 0 到任意个字符;'
\_
'(下划线)匹配单个任意 ASCII 字符。
-
在通配符字符串中:'%'(百分号)匹配 0 到任意个字符;'
\_
'(下划线)匹配单个任意 ASCII 字符。
-
如果希望匹配字符串中原本就带有的
\_
(下划线)字符,那么可以在通配符字符串中写作
`\_`
,也即加一个反斜线来进行转义。(从 2.2.0.0 版本开始支持)
-
如果希望匹配字符串中原本就带有的
\_
(下划线)字符,那么可以在通配符字符串中写作
`\_`
,也即加一个反斜线来进行转义。(从 2.2.0.0 版本开始支持)
-
通配符字符串最长不能超过 20 字节。(从 2.1.6.1 版本开始,通配符字符串的长度放宽到了 100 字节,并可以通过 taos.cfg 中的 maxWildCardsLength 参数来配置这一长度限制。但不建议使用太长的通配符字符串,将有可能严重影响 LIKE 操作的执行性能。)
-
通配符字符串最长不能超过 20 字节。(从 2.1.6.1 版本开始,通配符字符串的长度放宽到了 100 字节,并可以通过 taos.cfg 中的 maxWildCardsLength 参数来配置这一长度限制。但不建议使用太长的通配符字符串,将有可能严重影响 LIKE 操作的执行性能。)
3.
同时进行多个字段的范围过滤,需要使用关键词 AND 来连接不同的查询条件,暂不支持 OR 连接的不同列之间的查询过滤条件。
-
同时进行多个字段的范围过滤,需要使用关键词 AND 来连接不同的查询条件,暂不支持 OR 连接的不同列之间的查询过滤条件。
-
从 2.3.0.0 版本开始,已支持完整的同一列和/或不同列间的 AND/OR 运算。
-
从 2.3.0.0 版本开始,已支持完整的同一列和/或不同列间的 AND/OR 运算。
4.
针对单一字段的过滤,如果是时间过滤条件,则一条语句中只支持设定一个;但针对其他的(普通)列或标签列,则可以使用
`OR`
关键字进行组合条件的查询过滤。例如:
`((value > 20 AND value < 30) OR (value < 12))`
。
-
针对单一字段的过滤,如果是时间过滤条件,则一条语句中只支持设定一个;但针对其他的(普通)列或标签列,则可以使用
`OR`
关键字进行组合条件的查询过滤。例如:
`((value > 20 AND value < 30) OR (value < 12))`
。
-
从 2.3.0.0 版本开始,允许使用多个时间过滤条件,但首列时间戳的过滤运算结果只能包含一个区间。
-
从 2.3.0.0 版本开始,允许使用多个时间过滤条件,但首列时间戳的过滤运算结果只能包含一个区间。
5.
从 2.0.17.0 版本开始,条件过滤开始支持 BETWEEN AND 语法,例如
`WHERE col2 BETWEEN 1.5 AND 3.25`
表示查询条件为“1.5 ≤ col2 ≤ 3.25”。
-
从 2.0.17.0 版本开始,条件过滤开始支持 BETWEEN AND 语法,例如
`WHERE col2 BETWEEN 1.5 AND 3.25`
表示查询条件为“1.5 ≤ col2 ≤ 3.25”。
6.
从 2.1.4.0 版本开始,条件过滤开始支持 IN 算子,例如
`WHERE city IN ('Beijing', 'Shanghai')`
。说明:BOOL 类型写作
`{true, false}`
或
`{0, 1}`
均可,但不能写作 0、1 之外的整数;FLOAT 和 DOUBLE 类型会受到浮点数精度影响,集合内的值在精度范围内认为和数据行的值完全相等才能匹配成功;TIMESTAMP 类型支持非主键的列。
-
从 2.1.4.0 版本开始,条件过滤开始支持 IN 算子,例如
`WHERE city IN ('Beijing', 'Shanghai')`
。说明:BOOL 类型写作
`{true, false}`
或
`{0, 1}`
均可,但不能写作 0、1 之外的整数;FLOAT 和 DOUBLE 类型会受到浮点数精度影响,集合内的值在精度范围内认为和数据行的值完全相等才能匹配成功;TIMESTAMP 类型支持非主键的列。
7.
从 2.3.0.0 版本开始,条件过滤开始支持正则表达式,关键字 match/nmatch,不区分大小写。
-
从 2.3.0.0 版本开始,条件过滤开始支持正则表达式,关键字 match/nmatch,不区分大小写。
## 正则表达式过滤
## 正则表达式过滤
...
@@ -375,14 +378,18 @@ WHERE t1.ts = t2.ts AND t1.deviceid = t2.deviceid AND t1.status=0;
...
@@ -375,14 +378,18 @@ WHERE t1.ts = t2.ts AND t1.deviceid = t2.deviceid AND t1.status=0;
类似地,也可以对多个子查询的查询结果进行 JOIN 操作。
类似地,也可以对多个子查询的查询结果进行 JOIN 操作。
注意,JOIN 操作存在如下限制要求:
:::note
JOIN语句存在如下限制要求:
1.
参与一条语句中 JOIN 操作的表/超级表最多可以有 10 个。
-
参与一条语句中 JOIN 操作的表/超级表最多可以有 10 个。
2.
在包含 JOIN 操作的查询语句中不支持 FILL。
-
在包含 JOIN 操作的查询语句中不支持 FILL。
3.
暂不支持参与 JOIN 操作的表之间聚合后的四则运算。
-
暂不支持参与 JOIN 操作的表之间聚合后的四则运算。
4.
不支持只对其中一部分表做 GROUP BY。
-
不支持只对其中一部分表做 GROUP BY。
5.
JOIN 查询的不同表的过滤条件之间不能为 OR。
-
JOIN 查询的不同表的过滤条件之间不能为 OR。
6.
JOIN 查询要求连接条件不能是普通列,只能针对标签和主时间字段列(第一列)。
-
JOIN 查询要求连接条件不能是普通列,只能针对标签和主时间字段列(第一列)。
:::
## 嵌套查询
## 嵌套查询
...
@@ -396,17 +403,17 @@ SELECT ... FROM (SELECT ... FROM ...) ...;
...
@@ -396,17 +403,17 @@ SELECT ... FROM (SELECT ... FROM ...) ...;
:::info
:::info
1.
目前仅支持一层嵌套,也即不能在子查询中再嵌入子查询。
-
目前仅支持一层嵌套,也即不能在子查询中再嵌入子查询。
2.
内层查询的返回结果将作为“虚拟表”供外层查询使用,此虚拟表可以使用 AS 语法做重命名,以便于外层查询中方便引用。
-
内层查询的返回结果将作为“虚拟表”供外层查询使用,此虚拟表可以使用 AS 语法做重命名,以便于外层查询中方便引用。
3.
目前不能在“连续查询”功能中使用子查询。
-
目前不能在“连续查询”功能中使用子查询。
4.
在内层和外层查询中,都支持普通的表间/超级表间 JOIN。内层查询的计算结果也可以再参与数据子表的 JOIN 操作。
-
在内层和外层查询中,都支持普通的表间/超级表间 JOIN。内层查询的计算结果也可以再参与数据子表的 JOIN 操作。
5.
目前内层查询、外层查询均不支持 UNION 操作。
-
目前内层查询、外层查询均不支持 UNION 操作。
6.
内层查询支持的功能特性与非嵌套的查询语句能力是一致的。
-
内层查询支持的功能特性与非嵌套的查询语句能力是一致的。
-
内层查询的 ORDER BY 子句一般没有意义,建议避免这样的写法以免无谓的资源消耗。
-
内层查询的 ORDER BY 子句一般没有意义,建议避免这样的写法以免无谓的资源消耗。
7.
与非嵌套的查询语句相比,外层查询所能支持的功能特性存在如下限制:
-
与非嵌套的查询语句相比,外层查询所能支持的功能特性存在如下限制:
-
计算函数部分:
-
计算函数部分:
_.
如果内层查询的结果数据未提供时间戳,那么计算过程依赖时间戳的函数在外层会无法正常工作。例如:TOP, BOTTOM, FIRST, LAST, DIFF。
-
如果内层查询的结果数据未提供时间戳,那么计算过程依赖时间戳的函数在外层会无法正常工作。例如:TOP, BOTTOM, FIRST, LAST, DIFF。
_.
计算过程需要两遍扫描的函数,在外层查询中无法正常工作。例如:此类函数包括:STDDEV, PERCENTILE。
-
计算过程需要两遍扫描的函数,在外层查询中无法正常工作。例如:此类函数包括:STDDEV, PERCENTILE。
-
外层查询中不支持 IN 算子,但在内层中可以使用。
-
外层查询中不支持 IN 算子,但在内层中可以使用。
-
外层查询不支持 GROUP BY。
-
外层查询不支持 GROUP BY。
...
...
docs-cn/14-reference/01-taos-sql/07-function.md
浏览文件 @
4abedc2f
...
@@ -13,20 +13,21 @@ TDengine 支持针对数据的聚合查询。提供支持的聚合和选择函
...
@@ -13,20 +13,21 @@ TDengine 支持针对数据的聚合查询。提供支持的聚合和选择函
SELECT COUNT([*|field_name]) FROM tb_name [WHERE clause];
SELECT COUNT([*|field_name]) FROM tb_name [WHERE clause];
```
```
-
**功能说明**
:统计表/超级表中记录行数或某列的非空值个数。
**功能说明**
:统计表/超级表中记录行数或某列的非空值个数。
-
**返回数据类型**
:长整型 INT64。
-
**应用字段**
:应用全部字段。
-
**适用于**
:表、超级表。
:::info
**返回数据类型**
:长整型 INT64。
**应用字段**
:应用全部字段。
**适用于**
:表、超级表。
**使用说明**
:
-
可以使用星号(
\*
)来替代具体的字段,使用星号(
\*
)返回全部记录数量。
-
可以使用星号(
\*
)来替代具体的字段,使用星号(
\*
)返回全部记录数量。
-
针对同一表的(不包含 NULL 值)字段查询结果均相同。
-
针对同一表的(不包含 NULL 值)字段查询结果均相同。
-
如果统计对象是具体的列,则返回该列中非 NULL 值的记录数量。
-
如果统计对象是具体的列,则返回该列中非 NULL 值的记录数量。
:::
**示例**
:
示例:
```
```
taos> SELECT COUNT(*), COUNT(voltage) FROM meters;
taos> SELECT COUNT(*), COUNT(voltage) FROM meters;
...
@@ -48,12 +49,15 @@ Query OK, 1 row(s) in set (0.001075s)
...
@@ -48,12 +49,15 @@ Query OK, 1 row(s) in set (0.001075s)
SELECT AVG(field_name) FROM tb_name [WHERE clause];
SELECT AVG(field_name) FROM tb_name [WHERE clause];
```
```
-
**功能说明**
:统计表/超级表中某列的平均值。
**功能说明**
:统计表/超级表中某列的平均值。
-
**返回数据类型**
:双精度浮点数 Double。
-
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 字段。
**返回数据类型**
:双精度浮点数 Double。
-
**适用于**
:表、超级表。
示例:
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 字段。
**适用于**
:表、超级表。
**示例**
:
```
```
taos> SELECT AVG(current), AVG(voltage), AVG(phase) FROM meters;
taos> SELECT AVG(current), AVG(voltage), AVG(phase) FROM meters;
...
@@ -75,12 +79,17 @@ Query OK, 1 row(s) in set (0.000943s)
...
@@ -75,12 +79,17 @@ Query OK, 1 row(s) in set (0.000943s)
SELECT TWA(field_name) FROM tb_name WHERE clause;
SELECT TWA(field_name) FROM tb_name WHERE clause;
```
```
-
**功能说明**
:时间加权平均函数。统计表中某列在一段时间内的时间加权平均。
**功能说明**
:时间加权平均函数。统计表中某列在一段时间内的时间加权平均。
-
**返回数据类型**
:双精度浮点数 Double。
-
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**返回数据类型**
:双精度浮点数 Double。
-
**适用于**
:表、(超级表。
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
说明:从 2.1.3.0 版本开始,TWA 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
**适用于**
:表、超级表。
**使用说明**
:
-
从 2.1.3.0 版本开始,TWA 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
### IRATE
### IRATE
...
@@ -94,9 +103,11 @@ SELECT IRATE(field_name) FROM tb_name WHERE clause;
...
@@ -94,9 +103,11 @@ SELECT IRATE(field_name) FROM tb_name WHERE clause;
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:
**表、(超级表)**
。
**适用于**
:表、超级表。
**使用说明**
:
说明:(从 2.1.3.0 版本开始新增此函数)
IRATE 可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
-
从 2.1.3.0 版本开始此函数可用,
IRATE 可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
### SUM
### SUM
...
@@ -112,7 +123,7 @@ SELECT SUM(field_name) FROM tb_name [WHERE clause];
...
@@ -112,7 +123,7 @@ SELECT SUM(field_name) FROM tb_name [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
示例
:
**示例**
:
```
```
taos> SELECT SUM(current), SUM(voltage), SUM(phase) FROM meters;
taos> SELECT SUM(current), SUM(voltage), SUM(phase) FROM meters;
...
@@ -140,9 +151,9 @@ SELECT STDDEV(field_name) FROM tb_name [WHERE clause];
...
@@ -140,9 +151,9 @@ SELECT STDDEV(field_name) FROM tb_name [WHERE clause];
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**适用于**
:表
。(从 2.0.15.1 版本开始,本函数也支持
**超级表**
)
**适用于**
:表
、超级表(从 2.0.15.1 版本开始
)
示例
:
**示例**
:
```
```
taos> SELECT STDDEV(current) FROM d1001;
taos> SELECT STDDEV(current) FROM d1001;
...
@@ -158,12 +169,15 @@ Query OK, 1 row(s) in set (0.000915s)
...
@@ -158,12 +169,15 @@ Query OK, 1 row(s) in set (0.000915s)
SELECT LEASTSQUARES(field_name, start_val, step_val) FROM tb_name [WHERE clause];
SELECT LEASTSQUARES(field_name, start_val, step_val) FROM tb_name [WHERE clause];
```
```
-
**功能说明**
:统计表中某列的值是主键(时间戳)的拟合直线方程。start_val 是自变量初始值,step_val 是自变量的步长值。
**功能说明**
:统计表中某列的值是主键(时间戳)的拟合直线方程。start_val 是自变量初始值,step_val 是自变量的步长值。
-
**返回数据类型**
:字符串表达式(斜率, 截距)。
-
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
-
**适用于**
:表。
示例:
**返回数据类型**
:字符串表达式(斜率, 截距)。
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**适用于**
:表。
**示例**
:
```
```
taos> SELECT LEASTSQUARES(current, 1, 1) FROM d1001;
taos> SELECT LEASTSQUARES(current, 1, 1) FROM d1001;
...
@@ -179,13 +193,17 @@ Query OK, 1 row(s) in set (0.000921s)
...
@@ -179,13 +193,17 @@ Query OK, 1 row(s) in set (0.000921s)
SELECT MODE(field_name) FROM tb_name [WHERE clause];
SELECT MODE(field_name) FROM tb_name [WHERE clause];
```
```
-
**功能说明**
:返回出现频率最高的值,若存在多个频率相同的最高值,输出空。不能匹配标签、时间戳输出。
**功能说明**
:返回出现频率最高的值,若存在多个频率相同的最高值,输出空。不能匹配标签、时间戳输出。
-
**返回数据类型**
:同应用的字段。
-
**应用字段**
:适合于除时间主列外的任何类型字段。
-
**说明**
:由于返回数据量未知,考虑到内存因素,为了函数可以正常返回结果,建议不重复的数据量在 10 万级别,否则会报错。
-
**支持的版本**
:2.6 开始的版本。
示例:
**返回数据类型**
:同应用的字段。
**应用字段**
:适合于除时间主列外的任何类型字段。
**使用说明**
:由于返回数据量未知,考虑到内存因素,为了函数可以正常返回结果,建议不重复的数据量在 10 万级别,否则会报错。
**支持的版本**
:2.6.0.0 及以后的版本。
**示例**
:
```
```
taos> select voltage from d002;
taos> select voltage from d002;
...
@@ -210,14 +228,17 @@ Query OK, 1 row(s) in set (0.019393s)
...
@@ -210,14 +228,17 @@ Query OK, 1 row(s) in set (0.019393s)
SELECT HYPERLOGLOG(field_name) FROM { tb_name | stb_name } [WHERE clause];
SELECT HYPERLOGLOG(field_name) FROM { tb_name | stb_name } [WHERE clause];
```
```
-
**功能说明**
:
**功能说明**
:
-
采用 hyperloglog 算法,返回某列的基数。该算法在数据量很大的情况下,可以明显降低内存的占用,但是求出来的基数是个估算值,标准误差(标准误差是多次实验,每次的平均数的标准差,不是与真实结果的误差)为 0.81%。
-
采用 hyperloglog 算法,返回某列的基数。该算法在数据量很大的情况下,可以明显降低内存的占用,但是求出来的基数是个估算值,标准误差(标准误差是多次实验,每次的平均数的标准差,不是与真实结果的误差)为 0.81%。
-
在数据量较少的时候该算法不是很准确,可以使用 select count(data) from (select unique(col) as data from table) 的方法。
-
在数据量较少的时候该算法不是很准确,可以使用 select count(data) from (select unique(col) as data from table) 的方法。
-
**返回结果类型**
:整形。
-
**应用字段**
:适合于任何类型字段。
-
**支持的版本**
:2.6 开始的版本。
示例:
**返回结果类型**
:整形。
**应用字段**
:适合于任何类型字段。
**支持的版本**
:2.6.0.0 及以后的版本。
**示例**
:
```
```
taos> select dbig from shll;
taos> select dbig from shll;
...
@@ -258,7 +279,7 @@ SELECT MIN(field_name) FROM {tb_name | stb_name} [WHERE clause];
...
@@ -258,7 +279,7 @@ SELECT MIN(field_name) FROM {tb_name | stb_name} [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
示例
:
**示例**
:
```
```
taos> SELECT MIN(current), MIN(voltage) FROM meters;
taos> SELECT MIN(current), MIN(voltage) FROM meters;
...
@@ -288,7 +309,7 @@ SELECT MAX(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -288,7 +309,7 @@ SELECT MAX(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
示例
:
**示例**
:
```
```
taos> SELECT MAX(current), MAX(voltage) FROM meters;
taos> SELECT MAX(current), MAX(voltage) FROM meters;
...
@@ -318,15 +339,13 @@ SELECT FIRST(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -318,15 +339,13 @@ SELECT FIRST(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明:
**使用说明**
:
1)如果要返回各个列的首个(时间戳最小)非 NULL 值,可以使用 FIRST(
\*
);
-
如果要返回各个列的首个(时间戳最小)非 NULL 值,可以使用 FIRST(
\*
);
-
如果结果集中的某列全部为 NULL 值,则该列的返回结果也是 NULL;
-
如果结果集中所有列全部为 NULL 值,则不返回结果。
2)如果结果集中的某列全部为 NULL 值,则该列的返回结果也是 NULL;
**示例**
:
3)如果结果集中所有列全部为 NULL 值,则不返回结果。
示例:
```
```
taos> SELECT FIRST(*) FROM meters;
taos> SELECT FIRST(*) FROM meters;
...
@@ -356,15 +375,14 @@ SELECT LAST(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -356,15 +375,14 @@ SELECT LAST(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明:
**使用说明**
:
1)如果要返回各个列的最后(时间戳最大)一个非 NULL 值,可以使用 LAST(
\*
);
2)如果结果集中的某列全部为 NULL 值,则该列的返回结果也是 NULL;如果结果集中所有列全部为 NULL 值,则不返回结果。
-
如果要返回各个列的最后(时间戳最大)一个非 NULL 值,可以使用 LAST(
\*
);
-
如果结果集中的某列全部为 NULL 值,则该列的返回结果也是 NULL;如果结果集中所有列全部为 NULL 值,则不返回结果。
-
在用于超级表时,时间戳完全一样且同为最大的数据行可能有多个,那么会从中随机返回一条,而并不保证多次运行所挑选的数据行必然一致。
3)在用于超级表时,时间戳完全一样且同为最大的数据行可能有多个,那么会从中随机返回一条,而并不保证多次运行所挑选的数据行必然一致。
示例
:
**示例**
:
```
```
taos> SELECT LAST(*) FROM meters;
taos> SELECT LAST(*) FROM meters;
...
@@ -394,15 +412,13 @@ SELECT TOP(field_name, K) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -394,15 +412,13 @@ SELECT TOP(field_name, K) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明:
**使用说明**
:
1)
*k*
值取值范围 1≤
*k*
≤100;
2)系统同时返回该记录关联的时间戳列;
-
*k*
值取值范围 1≤
*k*
≤100;
-
系统同时返回该记录关联的时间戳列;
-
限制:TOP 函数不支持 FILL 子句。
3)限制:TOP 函数不支持 FILL 子句。
**示例**
:
示例:
```
```
taos> SELECT TOP(current, 3) FROM meters;
taos> SELECT TOP(current, 3) FROM meters;
...
@@ -435,15 +451,13 @@ SELECT BOTTOM(field_name, K) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -435,15 +451,13 @@ SELECT BOTTOM(field_name, K) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明:
**使用说明**
:
1)
*k*
值取值范围 1≤
*k*
≤100;
-
*k*
值取值范围 1≤
*k*
≤100;
-
系统同时返回该记录关联的时间戳列;
-
限制:BOTTOM 函数不支持 FILL 子句。
2)系统同时返回该记录关联的时间戳列;
**示例**
:
3)限制:BOTTOM 函数不支持 FILL 子句。
示例:
```
```
taos> SELECT BOTTOM(voltage, 2) FROM meters;
taos> SELECT BOTTOM(voltage, 2) FROM meters;
...
@@ -475,9 +489,9 @@ SELECT PERCENTILE(field_name, P) FROM { tb_name } [WHERE clause];
...
@@ -475,9 +489,9 @@ SELECT PERCENTILE(field_name, P) FROM { tb_name } [WHERE clause];
**适用于**
:表。
**适用于**
:表。
说明
:
*P*
值取值范围 0≤
*P*
≤100,为 0 的时候等同于 MIN,为 100 的时候等同于 MAX。
**使用说明**
:
*P*
值取值范围 0≤
*P*
≤100,为 0 的时候等同于 MIN,为 100 的时候等同于 MAX。
示例
:
**示例**
:
```
```
taos> SELECT PERCENTILE(current, 20) FROM d1001;
taos> SELECT PERCENTILE(current, 20) FROM d1001;
...
@@ -502,9 +516,14 @@ FROM { tb_name | stb_name } [WHERE clause]
...
@@ -502,9 +516,14 @@ FROM { tb_name | stb_name } [WHERE clause]
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明:
<br/>
**P**
值有效取值范围 0≤P≤100,为 0 的时候等同于 MIN,为 100 的时候等同于 MAX;
<br/>
**algo_type**
的有效输入:
**default**
和
**t-digest**
。 用于指定计算近似分位数的算法。可不提供第三个参数的输入,此时将使用 default 的算法进行计算,即 apercentile(column_name, 50, "default") 与 apercentile(column_name, 50) 等价。当使用“t-digest”参数的时候,将使用 t-digest 方式采样计算近似分位数。但该参数指定计算算法的功能从 2.2.0.x 版本开始支持,2.2.0.0 之前的版本不支持指定使用算法的功能。
<br/>
**使用说明**
嵌套子查询支持:适用于内层查询和外层查询。
-
**P**
值有效取值范围 0≤P≤100,为 0 的时候等同于 MIN,为 100 的时候等同于 MAX;
-
**algo_type**
的有效输入:
**default**
和
**t-digest**
-
用于指定计算近似分位数的算法。可不提供第三个参数的输入,此时将使用 default 的算法进行计算,即 apercentile(column_name, 50, "default") 与 apercentile(column_name, 50) 等价。
-
当使用“t-digest”参数的时候,将使用 t-digest 方式采样计算近似分位数。但该参数指定计算算法的功能从 2.2.0.x 版本开始支持,2.2.0.0 之前的版本不支持指定使用算法的功能。
**嵌套子查询支持**
:适用于内层查询和外层查询。
```
```
taos> SELECT APERCENTILE(current, 20) FROM d1001;
taos> SELECT APERCENTILE(current, 20) FROM d1001;
...
@@ -540,16 +559,12 @@ SELECT LAST_ROW(field_name) FROM { tb_name | stb_name };
...
@@ -540,16 +559,12 @@ SELECT LAST_ROW(field_name) FROM { tb_name | stb_name };
**适用于**
:表、超级表。
**适用于**
:表、超级表。
限制:LAST_ROW() 不能与 INTERVAL 一起使用。
**使用说明**
:
说明:在用于超级表时,时间戳完全一样且同为最大的数据行可能有多个,那么会从中随机返回一条,而并不保证多次运行所挑选的数据行必然一致。
<br/>
{" "}
{" "}
-
在用于超级表时,时间戳完全一样且同为最大的数据行可能有多个,那么会从中随机返回一条,而并不保证多次运行所挑选的数据行必然一致。
-
不能与 INTERVAL 一起使用。
<br
/>
**示例**
:
示例:
```
```
taos> SELECT LAST_ROW(current) FROM meters;
taos> SELECT LAST_ROW(current) FROM meters;
...
@@ -577,50 +592,46 @@ SELECT INTERP(field_name) FROM { tb_name | stb_name } [WHERE where_condition] [
...
@@ -577,50 +592,46 @@ SELECT INTERP(field_name) FROM { tb_name | stb_name } [WHERE where_condition] [
**应用字段**
:数值型字段。
**应用字段**
:数值型字段。
适用于:
**表、超级表、嵌套查询**
。
**适用于**
:表、超级表、嵌套查询。
说明:
1)INTERP 用于在指定时间断面获取指定列的记录值,如果该时间断面不存在符合条件的行数据,那么会根据 FILL 参数的设定进行插值。
2)INTERP 的输入数据为指定列的数据,可以通过条件语句(where 子句)来对原始列数据进行过滤,如果没有指定过滤条件则输入为全部数据。
3)INTERP 的输出时间范围根据 RANGE(timestamp1,timestamp2)字段来指定,需满足 timestamp1<=timestamp2。其中 timestamp1(必选值)为输出时间范围的起始值,即如果 timestamp1 时刻符合插值条件则 timestamp1 为输出的第一条记录,timestamp2(必选值)为输出时间范围的结束值,即输出的最后一条记录的 timestamp 不能大于 timestamp2。如果没有指定 RANGE,那么满足过滤条件的输入数据中第一条记录的 timestamp 即为 timestamp1,最后一条记录的 timestamp 即为 timestamp2,同样也满足 timestamp1 <= timestamp2。
4)INTERP 根据 EVERY 字段来确定输出时间范围内的结果条数,即从 timestamp1 开始每隔固定长度的时间(EVERY 值)进行插值。如果没有指定 EVERY,则默认窗口大小为无穷大,即从 timestamp1 开始只有一个窗口。
**使用说明**
5)INTERP 根据 FILL 字段来决定在每个符合输出条件的时刻如何进行插值,如果没有 FILL 字段则默认不插值,即输出为原始记录值或不输出(原始记录不存在)。
-
INTERP 用于在指定时间断面获取指定列的记录值,如果该时间断面不存在符合条件的行数据,那么会根据 FILL 参数的设定进行插值。
-
INTERP 的输入数据为指定列的数据,可以通过条件语句(where 子句)来对原始列数据进行过滤,如果没有指定过滤条件则输入为全部数据。
-
INTERP 的输出时间范围根据 RANGE(timestamp1,timestamp2)字段来指定,需满足 timestamp1<=timestamp2。其中 timestamp1(必选值)为输出时间范围的起始值,即如果 timestamp1 时刻符合插值条件则 timestamp1 为输出的第一条记录,timestamp2(必选值)为输出时间范围的结束值,即输出的最后一条记录的 timestamp 不能大于 timestamp2。如果没有指定 RANGE,那么满足过滤条件的输入数据中第一条记录的 timestamp 即为 timestamp1,最后一条记录的 timestamp 即为 timestamp2,同样也满足 timestamp1 <= timestamp2。
-
INTERP 根据 EVERY 字段来确定输出时间范围内的结果条数,即从 timestamp1 开始每隔固定长度的时间(EVERY 值)进行插值。如果没有指定 EVERY,则默认窗口大小为无穷大,即从 timestamp1 开始只有一个窗口。
-
INTERP 根据 FILL 字段来决定在每个符合输出条件的时刻如何进行插值,如果没有 FILL 字段则默认不插值,即输出为原始记录值或不输出(原始记录不存在)。
-
INTERP 只能在一个时间序列内进行插值,因此当作用于超级表时必须跟 group by tbname 一起使用,当作用嵌套查询外层时内层子查询不能含 GROUP BY 信息。
-
INTERP 的插值结果不受 ORDER BY timestamp 的影响,ORDER BY timestamp 只影响输出结果的排序。
6)INTERP 只能在一个时间序列内进行插值,因此当作用于超级表时必须跟 group by tbname 一起使用,当作用嵌套查询外层时内层子查询不能含 GROUP BY 信息。
**SQL示例**
:
7)INTERP 的插值结果不受 ORDER BY timestamp 的影响,ORDER BY timestamp 只影响输出结果的排序。
-
单点线性插值
SQL 示例:
1) 单点线性插值
```
```
taos> SELECT INTERP(*) FROM t1 RANGE('2017-7-14 18:40:00','2017-7-14 18:40:00') FILL(LINEAR);
taos> SELECT INTERP(*) FROM t1 RANGE('2017-7-14 18:40:00','2017-7-14 18:40:00') FILL(LINEAR);
```
```
2)
在2017-07-14 18:00:00到2017-07-14 19:00:00间每隔5秒钟进行取值(不插值)
-
在2017-07-14 18:00:00到2017-07-14 19:00:00间每隔5秒钟进行取值(不插值)
```
```
taos> SELECT INTERP(*) FROM t1 RANGE('2017-7-14 18:00:00','2017-7-14 19:00:00') EVERY(5s);
taos> SELECT INTERP(*) FROM t1 RANGE('2017-7-14 18:00:00','2017-7-14 19:00:00') EVERY(5s);
```
```
3)
在2017-07-14 18:00:00到2017-07-14 19:00:00间每隔5秒钟进行线性插值
-
在2017-07-14 18:00:00到2017-07-14 19:00:00间每隔5秒钟进行线性插值
```
```
taos> SELECT INTERP(*) FROM t1 RANGE('2017-7-14 18:00:00','2017-7-14 19:00:00') EVERY(5s) FILL(LINEAR);
taos> SELECT INTERP(*) FROM t1 RANGE('2017-7-14 18:00:00','2017-7-14 19:00:00') EVERY(5s) FILL(LINEAR);
```
```
4.
在所有时间范围内每隔 5 秒钟进行向后插值
-
在所有时间范围内每隔 5 秒钟进行向后插值
```
```
taos> SELECT INTERP(*) FROM t1 EVERY(5s) FILL(NEXT);
taos> SELECT INTERP(*) FROM t1 EVERY(5s) FILL(NEXT);
```
```
5.
根据 2017-07-14 17:00:00 到 2017-07-14 20:00:00 间的数据进行从 2017-07-14 18:00:00 到 2017-07-14 19:00:00 间每隔 5 秒钟进行线性插值
-
根据 2017-07-14 17:00:00 到 2017-07-14 20:00:00 间的数据进行从 2017-07-14 18:00:00 到 2017-07-14 19:00:00 间每隔 5 秒钟进行线性插值
```
```
taos> SELECT INTERP(*) FROM t1 where ts >= '2017-07-14 17:00:00' and ts <= '2017-07-14 20:00:00' RANGE('2017-7-14 18:00:00','2017-7-14 19:00:00') EVERY(5s) FILL(LINEAR);
taos> SELECT INTERP(*) FROM t1 where ts >= '2017-07-14 17:00:00' and ts <= '2017-07-14 20:00:00' RANGE('2017-7-14 18:00:00','2017-7-14 19:00:00') EVERY(5s) FILL(LINEAR);
...
@@ -640,8 +651,14 @@ SELECT INTERP(field_name) FROM { tb_name | stb_name } WHERE ts='timestamp' [FILL
...
@@ -640,8 +651,14 @@ SELECT INTERP(field_name) FROM { tb_name | stb_name } WHERE ts='timestamp' [FILL
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明:(从 2.0.15.0 版本开始新增此函数)
<br/>
1)INTERP 必须指定时间断面,如果该时间断面不存在直接对应的数据,那么会根据 FILL 参数的设定进行插值。此外,条件语句里面可附带筛选条件,例如标签、tbname。
<br/>
2)INTERP 查询要求查询的时间区间必须位于数据集合(表)的所有记录的时间范围之内。如果给定的时间戳位于时间范围之外,即使有插值指令,仍然不返回结果。
<br/>
3)单个 INTERP 函数查询只能够针对一个时间点进行查询,如果需要返回等时间间隔的断面数据,可以通过 INTERP 配合 EVERY 的方式来进行查询处理(而不是使用 INTERVAL),其含义是每隔固定长度的时间进行插值。
<br/>
**使用说明**
:
示例:
-
从 2.0.15.0 及以后版本可用
-
INTERP 必须指定时间断面,如果该时间断面不存在直接对应的数据,那么会根据 FILL 参数的设定进行插值。此外,条件语句里面可附带筛选条件,例如标签、tbname。
-
INTERP 查询要求查询的时间区间必须位于数据集合(表)的所有记录的时间范围之内。如果给定的时间戳位于时间范围之外,即使有插值指令,仍然不返回结果。
-
单个 INTERP 函数查询只能够针对一个时间点进行查询,如果需要返回等时间间隔的断面数据,可以通过 INTERP 配合 EVERY 的方式来进行查询处理(而不是使用 INTERVAL),其含义是每隔固定长度的时间进行插值
**示例**
:
```
```
taos> SELECT INTERP(*) FROM meters WHERE ts='2017-7-14 18:40:00.004';
taos> SELECT INTERP(*) FROM meters WHERE ts='2017-7-14 18:40:00.004';
...
@@ -689,9 +706,9 @@ SELECT TAIL(field_name, k, offset_val) FROM {tb_name | stb_name} [WHERE clause];
...
@@ -689,9 +706,9 @@ SELECT TAIL(field_name, k, offset_val) FROM {tb_name | stb_name} [WHERE clause];
**应用字段**
:适合于除时间主列外的任何类型字段。
**应用字段**
:适合于除时间主列外的任何类型字段。
**支持版本**
:2.6
开始
的版本。
**支持版本**
:2.6
.0.0 及之后
的版本。
示例
:
**示例**
:
```
```
taos> select ts,dbig from tail2;
taos> select ts,dbig from tail2;
...
@@ -725,14 +742,14 @@ SELECT UNIQUE(field_name) FROM {tb_name | stb_name} [WHERE clause];
...
@@ -725,14 +742,14 @@ SELECT UNIQUE(field_name) FROM {tb_name | stb_name} [WHERE clause];
**应用字段**
:适合于除时间类型以外的字段。
**应用字段**
:适合于除时间类型以外的字段。
**支持版本**
:2.6
开始
的版本。
**支持版本**
:2.6
.0.0 及之后
的版本。
**
说明**
:
**
使用说明**
:
-
该函数可以应用在普通表和超级表上。不能和窗口操作一起使用,例如 interval/state_window/session_window 。
-
该函数可以应用在普通表和超级表上。不能和窗口操作一起使用,例如 interval/state_window/session_window 。
-
由于返回数据量未知,考虑到内存因素,为了函数可以正常返回结果,建议不重复的数据量在 10 万级别,否则会报错。
-
由于返回数据量未知,考虑到内存因素,为了函数可以正常返回结果,建议不重复的数据量在 10 万级别,否则会报错。
示例
:
**示例**
:
```
```
taos> select ts,voltage from unique1;
taos> select ts,voltage from unique1;
...
@@ -761,23 +778,27 @@ Query OK, 5 row(s) in set (0.108458s)
...
@@ -761,23 +778,27 @@ Query OK, 5 row(s) in set (0.108458s)
## 计算函数
## 计算函数
-
**DIFF**
### DIFF
```
sql
```
sql
SELECT
{
DIFF
(
field_name
,
ignore_negative
)
|
DIFF
(
field_name
)
}
FROM
tb_name
[
WHERE
clause
];
SELECT
{
DIFF
(
field_name
,
ignore_negative
)
|
DIFF
(
field_name
)
}
FROM
tb_name
[
WHERE
clause
];
```
```
功能说明
:统计表中某列的值与前一行对应值的差。 ignore_negative 取值为 0|1 , 可以不填,默认值为 0. 不忽略负值。ignore_negative 为 1 时表示忽略负数。
**功能说明**
:统计表中某列的值与前一行对应值的差。 ignore_negative 取值为 0|1 , 可以不填,默认值为 0. 不忽略负值。ignore_negative 为 1 时表示忽略负数。
返回结果数据类型
:同应用字段。
**返回结果数据类型**
:同应用字段。
应用字段
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:
**表、(超级表)**
。
**适用于**
:表、超级表
。
说明:输出结果行数是范围内总行数减一,第一行没有结果输出。从 2.1.3.0 版本开始,DIFF 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。从 2.6.0 开始,DIFF 函数支持 ignore_negative 参数
**使用说明**
:
示例:
-
输出结果行数是范围内总行数减一,第一行没有结果输出。
-
从 2.1.3.0 版本开始,DIFF 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
-
从 2.6.0 开始,DIFF 函数支持 ignore_negative 参数
**示例**
:
```
sql
```
sql
taos
>
SELECT
DIFF
(
current
)
FROM
d1001
;
taos
>
SELECT
DIFF
(
current
)
FROM
d1001
;
...
@@ -800,11 +821,14 @@ SELECT DERIVATIVE(field_name, time_interval, ignore_negative) FROM tb_name [WHER
...
@@ -800,11 +821,14 @@ SELECT DERIVATIVE(field_name, time_interval, ignore_negative) FROM tb_name [WHER
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
**应用字段**
:不能应用在 timestamp、binary、nchar、bool 类型字段。
适用于:
**表、(超级表)**
。
**适用于**
:表、超级表
说明:(从 2.1.3.0 版本开始新增此函数)输出结果行数是范围内总行数减一,第一行没有结果输出。DERIVATIVE 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
**使用说明**
:
示例:
-
从 2.1.3.0 及以后版本可用;输出结果行数是范围内总行数减一,第一行没有结果输出。
-
DERIVATIVE 函数可以在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)。
**示例**
:
```
```
taos> select derivative(current, 10m, 0) from t1;
taos> select derivative(current, 10m, 0) from t1;
...
@@ -832,9 +856,9 @@ SELECT SPREAD(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -832,9 +856,9 @@ SELECT SPREAD(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
说明
:可用于 TIMESTAMP 字段,此时表示记录的时间覆盖范围。
**使用说明**
:可用于 TIMESTAMP 字段,此时表示记录的时间覆盖范围。
示例
:
**示例**
:
```
```
taos> SELECT SPREAD(voltage) FROM meters;
taos> SELECT SPREAD(voltage) FROM meters;
...
@@ -858,16 +882,18 @@ SELECT CEIL(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -858,16 +882,18 @@ SELECT CEIL(field_name) FROM { tb_name | stb_name } [WHERE clause];
**功能说明**
:获得指定列的向上取整数的结果。
**功能说明**
:获得指定列的向上取整数的结果。
返回结果类型:与指定列的原始数据类型一致。例如,如果指定列的原始数据类型为 Float,那么返回的数据类型也为 Float;如果指定列的原始数据类型为 Double,那么返回的数据类型也为 Double。
**返回结果类型**
:与指定列的原始数据类型一致。例如,如果指定列的原始数据类型为 Float,那么返回的数据类型也为 Float;如果指定列的原始数据类型为 Double,那么返回的数据类型也为 Double。
**适用数据类型**
:不能应用在 timestamp、binary、nchar、bool 类型字段上;在超级表查询中使用时,不能应用在 tag 列,无论 tag 列的类型是什么类型。
适用数据类型:不能应用在 timestamp、binary、nchar、bool 类型字段上;在超级表查询中使用时,不能应用在 tag 列,无论 tag 列的类型是什么类型。
**适用于**
: 普通表、超级表。
**嵌套子查询支持**
:适用于内层查询和外层查询。
嵌套子查询支持:适用于内层查询和外层查询。
**使用说明**
:
说明:
-
支持 +、-、
\*
、/ 运算,如 ceil(col1) + ceil(col2)。
支持 +、-、
\*
、/ 运算,如 ceil(col1) + ceil(col2)。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
该函数可以应用在普通表和超级表上。
### FLOOR
### FLOOR
...
@@ -901,9 +927,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -901,9 +927,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**嵌套子查询支持**
: 适用于内层查询和外层查询。
**嵌套子查询支持**
: 适用于内层查询和外层查询。
**
补充说明**
: 不支持 +、-、
*
、/ 运算,如 csum(col1) + csum(col2)。只能与聚合(Aggregation)函数一起使用。 该函数可以应用在普通表和超级表上。 使用在超级表上的时候,需要搭配 Group by tbname使用,将结果强制规约到单个时间线。
**
使用说明**
:
**支持版本**
: 从2.3.0.x开始支持
-
不支持 +、-、
*
、/ 运算,如 csum(col1) + csum(col2)。
-
只能与聚合(Aggregation)函数一起使用。 该函数可以应用在普通表和超级表上。
-
使用在超级表上的时候,需要搭配 Group by tbname使用,将结果强制规约到单个时间线。
**支持版本**
: 从2.3.0.x开始支持
### MAVG
### MAVG
...
@@ -919,9 +949,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -919,9 +949,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**嵌套子查询支持**
: 适用于内层查询和外层查询。
**嵌套子查询支持**
: 适用于内层查询和外层查询。
**补充说明**
: 不支持 +、-、
*
、/ 运算,如 mavg(col1, k1) + mavg(col2, k1); 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用;该函数可以应用在普通表和超级表上;使用在超级表上的时候,需要搭配 Group by tbname使用,将结果强制规约到单个时间线。
**使用说明**
:
-
不支持 +、-、
*
、/ 运算,如 mavg(col1, k1) + mavg(col2, k1);
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用;
-
该函数可以应用在普通表和超级表上;使用在超级表上的时候,需要搭配 Group by tbname使用,将结果强制规约到单个时间线。
**支持版本**
: 从2.3.0.x开始支持
**支持版本**
: 从2.3.0.x开始支持
### SAMPLE
### SAMPLE
...
@@ -937,9 +971,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -937,9 +971,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**嵌套子查询支持**
: 适用于内层查询和外层查询。
**嵌套子查询支持**
: 适用于内层查询和外层查询。
**
补充说明**
: 不能参与表达式计算;该函数可以应用在普通表和超级表上;使用在超级表上的时候,需要搭配 Group by tbname 使用,将结果强制规约到单个时间线。
**
使用说明**
:
**支持版本**
: 从2.3.0.x开始支持
-
不能参与表达式计算;该函数可以应用在普通表和超级表上;
-
使用在超级表上的时候,需要搭配 Group by tbname 使用,将结果强制规约到单个时间线。
**支持版本**
: 从2.3.0.x开始支持
### ASIN
### ASIN
...
@@ -957,11 +994,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -957,11 +994,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### ACOS
### ACOS
...
@@ -979,11 +1014,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -979,11 +1014,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### ATAN
### ATAN
...
@@ -1001,11 +1034,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1001,11 +1034,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### SIN
### SIN
...
@@ -1023,11 +1054,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1023,11 +1054,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### COS
### COS
...
@@ -1045,11 +1074,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1045,11 +1074,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### TAN
### TAN
...
@@ -1067,11 +1094,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1067,11 +1094,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### POW
### POW
...
@@ -1089,11 +1114,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1089,11 +1114,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### LOG
### LOG
...
@@ -1111,11 +1134,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1111,11 +1134,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### ABS
### ABS
...
@@ -1133,11 +1154,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1133,11 +1154,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### SQRT
### SQRT
...
@@ -1155,11 +1174,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1155,11 +1174,9 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**使用说明**
:
**使用说明**
:
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
-
该函数可以应用在普通表和超级表上。
该函数可以应用在普通表和超级表上。
-
版本2.6.0.x后支持
版本2.6.0.x后支持
### CAST
### CAST
...
@@ -1171,20 +1188,21 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1171,20 +1188,21 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**返回结果类型**
:CAST 中指定的类型(type_name)。
**返回结果类型**
:CAST 中指定的类型(type_name)。
**适用数据类型**
:输入参数 expression 的类型可以是除 JSON 外目前所有类型字段(BOOL/TINYINT/SMALLINT/INT/BIGINT/FLOAT/DOUBLE/BINARY(M)/TIMESTAMP/NCHAR(M)/TINYINT UNSIGNED/SMALLINT UNSIGNED/INT UNSIGNED/BIGINT UNSIGNED); 输出目标类型只支持 BIGINT/BINARY(N)/TIMESTAMP/NCHAR(N)/BIGINT UNSIGNED。
**适用数据类型**
:
说明:
对于不能支持的类型转换会直接报错。
-
输入参数 expression 的类型可以是除 JSON 外目前所有类型字段(BOOL/TINYINT/SMALLINT/INT/BIGINT/FLOAT/DOUBLE/BINARY(M)/TIMESTAMP/NCHAR(M)/TINYINT UNSIGNED/SMALLINT UNSIGNED/INT UNSIGNED/BIGINT UNSIGNED);
-
输出目标类型只支持 BIGINT/BINARY(N)/TIMESTAMP/NCHAR(N)/BIGINT UNSIGNED。
如果输入值为NULL则输出值也为NULL。
**使用说明**
:
对于类型支持但某些值无法正确转换的情况对应的转换后的值以转换函数输出为准。目前可能遇到的几种情况:
-
对于不能支持的类型转换会直接报错。
-
如果输入值为NULL则输出值也为NULL。
-
对于类型支持但某些值无法正确转换的情况对应的转换后的值以转换函数输出为准。目前可能遇到的几种情况:
1)BINARY/NCHAR转BIGINT/BIGINT UNSIGNED时可能出现的无效字符情况,例如"a"可能转为0。
1)BINARY/NCHAR转BIGINT/BIGINT UNSIGNED时可能出现的无效字符情况,例如"a"可能转为0。
2)有符号数或TIMESTAMP转BIGINT UNSIGNED可能遇到的溢出问题。
2)有符号数或TIMESTAMP转BIGINT UNSIGNED可能遇到的溢出问题。
3)BIGINT UNSIGNED转BIGINT可能遇到的溢出问题。
3)BIGINT UNSIGNED转BIGINT可能遇到的溢出问题。
4)FLOAT/DOUBLE转BIGINT/BIGINT UNSIGNED可能遇到的溢出问题。
4)FLOAT/DOUBLE转BIGINT/BIGINT UNSIGNED可能遇到的溢出问题。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### CONCAT
### CONCAT
...
@@ -1198,13 +1216,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1198,13 +1216,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数或者全部是 BINARY 格式的字符串或者列,或者全部是 NCHAR 格式的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数或者全部是 BINARY 格式的字符串或者列,或者全部是 NCHAR 格式的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数最小参数个数为2个,最大参数个数为8个。
-
该函数最小参数个数为2个,最大参数个数为8个。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### CONCAT_WS
### CONCAT_WS
...
@@ -1218,13 +1236,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1218,13 +1236,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数或者全部是 BINARY 格式的字符串或者列,或者全部是 NCHAR 格式的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数或者全部是 BINARY 格式的字符串或者列,或者全部是 NCHAR 格式的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果separator值为NULL,输出值为NULL。如果separator值不为NULL,其他输入为NULL,输出为空串
-
如果separator值为NULL,输出值为NULL。如果separator值不为NULL,其他输入为NULL,输出为空串
该函数最小参数个数为3个,最大参数个数为9个。
-
该函数最小参数个数为3个,最大参数个数为9个。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### LENGTH
### LENGTH
...
@@ -1238,12 +1256,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1238,12 +1256,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
**
使用
说明**
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该
函数适用于内层查询和外层查询。
-
函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### CHAR_LENGTH
### CHAR_LENGTH
...
@@ -1257,12 +1275,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1257,12 +1275,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
**
使用
说明**
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### LOWER
### LOWER
...
@@ -1276,12 +1294,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1276,12 +1294,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### UPPER
### UPPER
...
@@ -1295,12 +1313,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1295,12 +1313,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### LTRIM
### LTRIM
...
@@ -1314,12 +1332,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1314,12 +1332,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### RTRIM
### RTRIM
...
@@ -1333,12 +1351,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1333,12 +1351,12 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### SUBSTR
### SUBSTR
...
@@ -1352,13 +1370,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1352,13 +1370,13 @@ SELECT ROUND(field_name) FROM { tb_name | stb_name } [WHERE clause];
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**适用数据类型**
:输入参数是 BINARY 类型或者 NCHAR 类型的字符串或者列。不能应用在 TAG 列。
**说明**
:
**
使用
说明**
:
如果输入值为NULL,输出值为NULL。
-
如果输入值为NULL,输出值为NULL。
输入参数pos可以为正数,也可以为负数。如果pos是正数,表示开始位置从字符串开头正数计算。如果pos为负数,表示开始位置从字符串结尾倒数计算。如果输入参数len被忽略,返回的子串包含从pos开始的整个字串。
-
输入参数pos可以为正数,也可以为负数。如果pos是正数,表示开始位置从字符串开头正数计算。如果pos为负数,表示开始位置从字符串结尾倒数计算。如果输入参数len被忽略,返回的子串包含从pos开始的整个字串。
该函数可以应用在普通表和超级表上。
-
该函数可以应用在普通表和超级表上。
该函数适用于内层查询和外层查询。
-
该函数适用于内层查询和外层查询。
版本2.6.0.x后支持
-
版本2.6.0.x后支持
### 四则运算
### 四则运算
...
@@ -1374,11 +1392,10 @@ SELECT field_name [+|-|*|/|%][Value|field_name] FROM { tb_name | stb_name } [WH
...
@@ -1374,11 +1392,10 @@ SELECT field_name [+|-|*|/|%][Value|field_name] FROM { tb_name | stb_name } [WH
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:
**使用说明**
:
1)支持两列或多列之间进行计算,可使用括号控制计算优先级;
2)NULL 字段不参与计算,如果参与计算的某行中包含 NULL,该行的计算结果为 NULL。
-
支持两列或多列之间进行计算,可使用括号控制计算优先级;
-
NULL 字段不参与计算,如果参与计算的某行中包含 NULL,该行的计算结果为 NULL。
```
```
taos> SELECT current + voltage * phase FROM d1001;
taos> SELECT current + voltage * phase FROM d1001;
...
@@ -1411,10 +1428,9 @@ SELECT STATECOUNT(field_name, oper, val) FROM { tb_name | stb_name } [WHERE clau
...
@@ -1411,10 +1428,9 @@ SELECT STATECOUNT(field_name, oper, val) FROM { tb_name | stb_name } [WHERE clau
**支持的版本**
:2.6 开始的版本。
**支持的版本**
:2.6 开始的版本。
**说明**
:
**
使用
说明**
:
-
该函数可以应用在普通表上,在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)
-
该函数可以应用在普通表上,在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)
-
不能和窗口操作一起使用,例如 interval/state_window/session_window。
-
不能和窗口操作一起使用,例如 interval/state_window/session_window。
**示例**
:
**示例**
:
...
@@ -1465,10 +1481,9 @@ SELECT stateDuration(field_name, oper, val, unit) FROM { tb_name | stb_name } [W
...
@@ -1465,10 +1481,9 @@ SELECT stateDuration(field_name, oper, val, unit) FROM { tb_name | stb_name } [W
**支持的版本**
:2.6 开始的版本。
**支持的版本**
:2.6 开始的版本。
**说明**
:
**
使用
说明**
:
-
该函数可以应用在普通表上,在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)
-
该函数可以应用在普通表上,在由 GROUP BY 划分出单独时间线的情况下用于超级表(也即 GROUP BY tbname)
-
不能和窗口操作一起使用,例如 interval/state_window/session_window。
-
不能和窗口操作一起使用,例如 interval/state_window/session_window。
**示例**
:
**示例**
:
...
@@ -1517,10 +1532,11 @@ INSERT INTO tb_name VALUES (NOW(), ...);
...
@@ -1517,10 +1532,11 @@ INSERT INTO tb_name VALUES (NOW(), ...);
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:
**使用说明**
:
1)支持时间加减操作,如 NOW() + 1s, 支持的时间单位如下:
b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。
-
支持时间加减操作,如 NOW() + 1s, 支持的时间单位如下:
2)返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。
-
返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
**示例**
:
**示例**
:
...
@@ -1563,10 +1579,11 @@ INSERT INTO tb_name VALUES (TODAY(), ...);
...
@@ -1563,10 +1579,11 @@ INSERT INTO tb_name VALUES (TODAY(), ...);
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:
**使用说明**
:
1)支持时间加减操作,如 TODAY() + 1s, 支持的时间单位如下:
b(纳秒),u(微秒),a(毫秒),s(秒),m(分),h(小时),d(天),w(周)。
-
支持时间加减操作,如 TODAY() + 1s, 支持的时间单位如下:
2)返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
b(纳秒),u(微秒),a(毫秒),s(秒),m(分),h(小时),d(天),w(周)。
-
返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
**示例**
:
**示例**
:
...
@@ -1631,7 +1648,10 @@ SELECT TO_ISO8601(ts_val | ts_col) FROM { tb_name | stb_name } [WHERE clause];
...
@@ -1631,7 +1648,10 @@ SELECT TO_ISO8601(ts_val | ts_col) FROM { tb_name | stb_name } [WHERE clause];
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:如果输入是 UNIX 时间戳常量,返回格式精度由时间戳的位数决定,如果输入是 TIMSTAMP 类型的列,返回格式的时间戳精度与当前 DATABASE 设置的时间精度一致。
**使用说明**
:
-
如果输入是 UNIX 时间戳常量,返回格式精度由时间戳的位数决定;
-
如果输入是 TIMSTAMP 类型的列,返回格式的时间戳精度与当前 DATABASE 设置的时间精度一致。
**示例**
:
**示例**
:
...
@@ -1663,9 +1683,10 @@ SELECT TO_UNIXTIMESTAMP(datetime_string | ts_col) FROM { tb_name | stb_name } [W
...
@@ -1663,9 +1683,10 @@ SELECT TO_UNIXTIMESTAMP(datetime_string | ts_col) FROM { tb_name | stb_name } [W
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:
**使用说明**
:
1)输入的日期时间字符串须符合 ISO8601/RFC3339 标准,无法转换的字符串格式将返回 0。
2)返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
-
输入的日期时间字符串须符合 ISO8601/RFC3339 标准,无法转换的字符串格式将返回 0。
-
返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
**示例**
:
**示例**
:
...
@@ -1697,10 +1718,10 @@ SELECT TIMETRUNCATE(ts_val | datetime_string | ts_col, time_unit) FROM { tb_name
...
@@ -1697,10 +1718,10 @@ SELECT TIMETRUNCATE(ts_val | datetime_string | ts_col, time_unit) FROM { tb_name
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:
**
使用
说明**
:
1)
支持的时间单位 time_unit 如下:
-
支持的时间单位 time_unit 如下:
1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天)。
1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天)。
2)
返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
-
返回的时间戳精度与当前 DATABASE 设置的时间精度一致。
**示例**
:
**示例**
:
...
@@ -1740,10 +1761,10 @@ SELECT TIMEDIFF(ts_val1 | datetime_string1 | ts_col1, ts_val2 | datetime_string2
...
@@ -1740,10 +1761,10 @@ SELECT TIMEDIFF(ts_val1 | datetime_string1 | ts_col1, ts_val2 | datetime_string2
**适用于**
:表、超级表。
**适用于**
:表、超级表。
**说明**
:
**
使用
说明**
:
1)
支持的时间单位 time_unit 如下:
-
支持的时间单位 time_unit 如下:
1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天)。
1u(微秒),1a(毫秒),1s(秒),1m(分),1h(小时),1d(天)。
2)
如果时间单位 time_unit 未指定, 返回的时间差值精度与当前 DATABASE 设置的时间精度一致。
-
如果时间单位 time_unit 未指定, 返回的时间差值精度与当前 DATABASE 设置的时间精度一致。
**示例**
:
**示例**
:
...
...
docs-cn/14-reference/01-taos-sql/index.md
浏览文件 @
4abedc2f
...
@@ -4,7 +4,7 @@ title: TAOS SQL
...
@@ -4,7 +4,7 @@ title: TAOS SQL
本文档说明 TAOS SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的 SQL 语言的基础。
本文档说明 TAOS SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的 SQL 语言的基础。
TAOS SQL 是用户对 TDengine 进行数据写入和查询的主要工具。TAOS SQL 为了便于用户快速上手,在一定程度上提供
类似于标准 SQL 类似的风格和模式。严格意义上,TAOS SQL 并不是也不试图提供 SQL 标准的
语法。此外,由于 TDengine 针对的时序性结构化数据不提供删除功能,因此在 TAO SQL 中不提供数据删除的相关功能。
TAOS SQL 是用户对 TDengine 进行数据写入和查询的主要工具。TAOS SQL 为了便于用户快速上手,在一定程度上提供
与标准 SQL 类似的风格和模式。严格意义上,TAOS SQL 并不是也不试图提供标准的 SQL
语法。此外,由于 TDengine 针对的时序性结构化数据不提供删除功能,因此在 TAO SQL 中不提供数据删除的相关功能。
TAOS SQL 不支持关键字的缩写,例如 DESCRIBE 不能缩写为 DESC。
TAOS SQL 不支持关键字的缩写,例如 DESCRIBE 不能缩写为 DESC。
...
...
docs-cn/14-reference/12-directory.md
0 → 100644
浏览文件 @
4abedc2f
---
title
:
文件目录结构
---
安装 TDengine 后,默认会在操作系统中生成下列目录或文件:
| 目录/文件 | 说明 |
| ------------------------- | -------------------------------------------------------------------- |
| /usr/local/taos/bin | TDengine 可执行文件目录。其中的执行文件都会软链接到/usr/bin 目录下。 |
| /usr/local/taos/driver | TDengine 动态链接库目录。会软链接到/usr/lib 目录下。 |
| /usr/local/taos/examples | TDengine 各种语言应用示例目录。 |
| /usr/local/taos/include | TDengine 对外提供的 C 语言接口的头文件。 |
| /etc/taos/taos.cfg | TDengine 默认[配置文件] |
| /var/lib/taos | TDengine 默认数据文件目录。可通过[配置文件]修改位置。 |
| /var/log/taos | TDengine 默认日志文件目录。可通过[配置文件]修改位置。 |
## 可执行文件
TDengine 的所有可执行文件默认存放在 _/usr/local/taos/bin_ 目录下。其中包括:
-
_taosd_:TDengine 服务端可执行文件
-
_taos_:TDengine Shell 可执行文件
-
_taosdump_:数据导入导出工具
-
_taosBenchmark_:TDengine 测试工具
-
_remove.sh_:卸载 TDengine 的脚本,请谨慎执行,链接到/usr/bin 目录下的
**rmtaos**
命令。会删除 TDengine 的安装目录/usr/local/taos,但会保留/etc/taos、/var/lib/taos、/var/log/taos。
-
_taosadapter_: 提供 RESTful 服务和接受其他多种软件写入请求的服务端可执行文件
-
_tarbitrator_: 提供双节点集群部署的仲裁功能
-
_run_taosd_and_taosadapter.sh_:同时启动 taosd 和 taosAdapter 的脚本
-
_TDinsight.sh_:用于下载 TDinsight 并安装的脚本
-
_set_core.sh_:用于方便调试设置系统生成 core dump 文件的脚本
-
_taosd-dump-cfg.gdb_:用于方便调试 taosd 的 gdb 执行脚本
:::note
2.
4.0.0 版本之后的 taosBenchmark 和 taosdump 需要安装独立安装包 taosTools。
:::
:::tip
您可以通过修改系统配置文件 taos.cfg 来配置不同的数据目录和日志目录。
:::
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录