Influxdb 中更多查询的总和 - 平均值总和

Sum of more queries in Influxdb - sum of averages

我正在使用 influxdb 和 grafana 创建我的整个投资组合仪表板,在总结我的子投资组合时遇到以下问题:

也就是某些值无缘无故地翻了一番。我用来从网站获取数据的爬虫每小时运行一次。我检查了可见时间的数据,它们没有两次上传到数据库。 (所有按时间范围分组都是有问题的) 解决方案可以按小时计算所有资产的平均值,完全可以:

我的 influxdb table 结构如下:

    time                              Amount    CZK_amount     Currency Portfolio
0  2020-07-11T00:01:07.386426Z         xxxxx Kč XXXXXXX.350000    CZK    Portu
1  2020-07-11T00:01:07.424887Z         $xxxxx   XXXXXX.614056     USD    Crypto
2  2020-07-11T00:01:07.435219Z         €xxxx    XXXXX.299440      EUR    Degiro
3  2020-07-11T00:01:07.447881Z          xxxx    XXXXX.000000      CZK    Zonky

目前,我的按小时计算单个投资组合平均值的查询如下所示:

SELECT mean("CZK_amount") FROM "autogen"."Portfolio_status" WHERE ("Portfolio" = 'Crypto') AND $timeFilter GROUP BY time(1h) fill(linear)

有没有一种方法可以编写一个查询 return 所有投资组合的总和结果?

SELECT mean("CZK_amount") FROM "autogen"."Portfolio_status" WHERE ("Portfolio" = 'Portu') AND $timeFilter GROUP BY time(1h) fill(linear)

SELECT mean("CZK_amount") FROM "autogen"."Portfolio_status" WHERE ("Portfolio" = 'Zonky') AND $timeFilter GROUP BY time(1h) fill(linear)

SELECT mean("CZK_amount") FROM "autogen"."Portfolio_status" WHERE ("Portfolio" = 'Degiro') AND $timeFilter GROUP BY time(1h) fill(linear)

感谢您提供任何信息。

我会使用子查询并按标签分组:

SELECT SUM(mean) FROM (
   SELECT MEAN("CZK_amount") 
   FROM "autogen"."Portfolio_status" 
   WHERE ("Portfolio" = 'Portu') OR ("Portfolio" = 'Degiro') 
     AND $timeFilter 
   GROUP BY time(1h), "Portfolio" fill(linear)
) GROUP BY time(1h) fill(linear)

顺便说一句:你有峰值,因为你是按分钟分组的,你可能没有固定的 1 分钟时间间隔的数据,例如:

    time                              Amount    CZK_amount     Currency Portfolio
0  2020-07-11T00:01:07.386426Z         xxxxx Kč XXXXXXX.350000    CZK    Portu
0  2020-07-11T00:02:47.386426Z         xxxxx Kč XXXXXXX.350000    CZK    Portu
0  2020-07-11T00:04:01.386426Z         xxxxx Kč XXXXXXX.350000    CZK    Portu
0  2020-07-11T00:04:59.386426Z         xxxxx Kč XXXXXXX.350000    CZK    Portu
...

因此对于这些数据,第 3 分钟的值将为零,第 4 分钟的值将加倍。