编写查询语句
本章节描述如何在 GreptimeDB 中编写持续聚合查询。
查询语句应该是一个带有聚合函数或非聚合函数(即 scalar 函数)的 SELECT
语句。
一般来说,Flow 的 SQL
部分就像一个普通的 SELECT
子句,只是稍微有一些不同。
具体语法如下:
SELECT AGGR_FUNCTION(column1, column2,..) FROM <source_table> GROUP BY TIME_WINDOW_FUNCTION();
SELECT
关键字后只允许两种表达式:
- 聚合函数:详细信息请参考 表达式 部分。
- 标量函数:如
col
、to_lowercase(col)
、col + 1
等。这部分与 GreptimeDB 中的普通SELECT
子句相同。
查询应该有一个 FROM
子句来标识 source 表。由于不支持 join 子句,目前只能从单个表中聚合列。
GROUP BY
子句与普通查询中的工作方式相同。
它根据指定的列对数据进行分组。
GROUP BY
子句中使用的时间窗口函数 hop()
和 tumble()
在 定义时间窗口 部分中有描述。
它们用于在聚合中定义时 间窗口。
GROUP BY
中的其他表达式可以是 literal、列名或 scalar 表达式。
持续聚合查询不支持 ORDER BY
、LIMIT
、OFFSET
等其他操作。