函数
Datafusion 函数
由于 GreptimeDB 的查询引擎是基于 Apache Arrow DataFusion 构建的,GreptimeDB 继承了 DataFusion 中所有内置的函数。这些函数包括:
- 聚合函数: 如
COUNT
、SUM
、MIN
、MAX
等。详细列表请参阅 聚合函数 - 标量函数: 如
ABS
、COS
、FLOOR
等。详细列表请参阅 标量函数 - 窗口函数: 对相关的一组行记录执行计算。详细列表请参阅 窗口函数
要查看所有 DataFusion 函数,请参阅 DataFusion 函数。
arrow_cast
arrow_cast
函数来自 DataFusion 的 arrow_cast
。其用法如下:
arrow_cast(expression, datatype)
其中 datatype
可以是此 列表 中的任何有效 Arrow 数据类型。四种时间戳类型是:
- Timestamp(Second, None)
- Timestamp(Millisecond, None)
- Timestamp(Microsecond, None)
- Timestamp(Nanosecond, None)
(注意 None
表示时间戳不考虑时区)
GreptimeDB 函数
字符串函数
DataFusion 字符串函数。
GreptimeDB 提供:
matches_term(expression, term)
用于全文检索。
阅读查询日志文档获取更多详情。
数学函数
DataFusion 数学函数。GreptimeDB 额外提供:
clamp(value, lower, upper)
将给定值限制在上下界之间:
SELECT CLAMP(10, 0, 1);
+------------------------------------+
| clamp(Int64(10),Int64(0),Int64(1)) |
+------------------------------------+
| 1 |
+------------------------------------+
SELECT CLAMP(0.5, 0, 1);
+---------------------------------------+
| clamp(Float64(0.5),Int64(0),Int64(1)) |
+---------------------------------------+
| 0.5 |
+---------------------------------------+
mod(x, y)
获取一个数除以另一个数的余数:
SELECT mod(18, 4);
+-------------------------+
| mod(Int64(18),Int64(4)) |
+-------------------------+
| 2 |
+-------------------------+
日期和时间函数
DataFusion 时间和日期函数。GreptimeDB 额外提供:
date_add
date_add(expression, interval)
向 Timestamp、Date 或 DateTime 添加一个间隔值:
SELECT date_add('2023-12-06'::DATE, '3 month 5 day');