问题描述
我正在尝试这样的查询:
SELECT COUNT("value"),F("value"),G("value") FROM "soMetable" WHERE time >= t1 AND time < t2 GROUP BY (aggregateWindow),*
F =平方和,如果我可以做下面的SUM("value"*"value")
之类的事情,这并不太难,但是显然在Influx中不起作用(或者我使用的语法错误) )。
G = unix纪元中的聚合时间戳记+ gregationWindow。因此,例如,如果aggregationWindow == 1s,那么我需要以下输出(假设该aggregationWindow中只有一个点,其值为value
):
time value F G
---- ----- -- -----------------
1600272300000000000 1 1 1600272301000000000
1600272301000000000 2 4 1600272302000000000
1600272302000000000 3 9 1600272303000000000
1600272303000000000 4 16 1600272304000000000
1600272304000000000 5 25 1600272305000000000
我知道您可以通过通量将平方和实现为described here,但是我担心Flux与常规Influx查询的性能为mentioned here。所以基本上我在问,通量是进行这样的查询的唯一,最有效的方法吗?
解决方法
简单:
SELECT
COUNT("value"),"value"*"value" AS F,POW("value",2) AS FwithPOWfunction
FROM "someTable"
WHERE
time >= t1 AND time < t2
GROUP BY (aggregateWindow)
您无法创建新的时间列,但可以将偏移量应用于时间分组GROUP BY time(time_interval,[<offset_interval])
Doc是您的好朋友,以获取更多详细信息并学习正确的语法: