能否支持对不固定子节点的函数运算
Is your feature request related to a problem? Please describe. 当我查询一些最新数据时,比如查询最新的10条,可以通过order by time desc limit 10。 但是有时候需要对查询回来的每一行的数据做运算,比如求和、取平均值等等。 当子节点明确时 可以通过 select s1+s2+s3 from root.data.g_0.d_0 order by time desc limit 10; 但现实的场景中子节点是不固定的,名称也是未知的。 可以通过目前的group by对子节点进行聚合后进行函数运算,但是无法支持取最近10个时间序列每一个时间点的单独计算。
Describe the solution you'd like
是否可以增加一些函数用来对子节点的值进行计算。比如 增加 node_sum 函数
比如 select node_sum(*) from root.data.g_0.d_0.* order by time desc limit 10;
+-----------------------------+-------------------------------------------------------------------+
| Time| node_sum(root.data.g_0.d_0.)|
+-----------------------------+-------------------------------------------------------------------+
|2022-10-18T16:41:24.195+08:00| 0.0|
|2022-10-18T16:41:09.195+08:00| 0.0|
|2022-10-18T16:40:54.195+08:00| 0.0|
|2022-10-18T16:40:39.195+08:00| 0.0|
|2022-10-18T16:40:24.195+08:00| 0.0|
|2022-10-18T16:40:09.195+08:00| 0.0|
|2022-10-18T16:39:54.195+08:00| 5.36E8|
|2022-10-18T16:39:39.822+08:00| 5.82E8|
|2022-10-18T16:39:24.195+08:00| 0.0|
|2022-10-18T16:39:09.195+08:00| 0.0|
+--------------------------------+----------------------------------------------------------------+
Describe alternatives you've considered
现在可以查询出来后通过遍历每一行、每一个子节点来进行计算。
或者通过采集间隔,计算出时间点 结合 group by (),level=来进行查询,
比如: 5s采集一次,取最近10条,当前时间为2022-10-18T17:23:54,则50s前为2022-10-18T17:23:04
select * from root.data.g_0.d_0. where time > 2022-10-18T17:23:04 group by ([2022-10-18T17:23:04, 2022-10-18T17:23:54), 5s),level=1,2,3
Additional context