我想对存储在 InfluxDB 中的值进行对数平均。
为此,我首先需要对每个值进行数学运算。 然后,我需要将所有结果值加在一起(使用我想说的总和) 最后,我需要对结果值进行另一个数学运算。
在sum()聚合器对每个值求和之前,我找不到合适的语法对每个值进行数学运算。我该怎么办?
这就是我想要做的:
10**(value/10)
10*log(sum/nb_samples)
其中
nb_samples是样本数(可能是count("value")
)如果这有助于我使用 Grafana 进行此操作,但这确实是一个 InfluxDB查询语法问题。
我的感觉是我的问题可能需要修改 InfluxDB 本身以添加新的log_mean函数,因为查询语言似乎不够灵活,但我希望我是错的。
谢谢
函数内部似乎不支持数学运算符。
我希望sum(10**"values"/10)
通过在求和之前对每个值应用运算来起作用,但不会实现
目前,我已使用子查询解决了此问题,但我想知道是否还有更优雅的方法
SELECT 10*LOG10(sum("x") / count("x")) FROM (SELECT POW(10,"value"/100) AS "x" FROM "mydata" WHERE $timeFilter)
编辑:格式化