在使用聚合器之前,如何在每个值上应用数学运算符?

时间:2019-06-28 18:28:20

标签: influxdb

我想对存储在 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)

编辑:格式化

0 个答案:

没有答案