Grafana XDB中的多个查询之和-平均值之和

Grafana XDB中的多个查询之和-平均值之和,grafana,influxdb,Grafana,Influxdb,我正在用XDB和grafana创建我的整个投资组合仪表板,在汇总我的子投资组合时,我遇到了以下问题: 也就是说,有些价值毫无理由地翻了一番。我用来从网站获取数据的刮板每小时运行一次。我在可见时间检查了数据,但没有两次上传到数据库。(所有分组时间表都有问题) 解决方案可以是按小时计算所有资产的平均值,这完全正常: 我的XDB表的结构如下: time Amount CZK_amount Currency Portfo

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

也就是说,有些价值毫无理由地翻了一番。我用来从网站获取数据的刮板每小时运行一次。我在可见时间检查了数据,但没有两次上传到数据库。(所有分组时间表都有问题) 解决方案可以是按小时计算所有资产的平均值,这完全正常:

我的XDB表的结构如下:

    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)
有没有一种方法可以编写一个查询,返回所有投资组合之和的结果

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
...

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

三个查询是否与查询相同或相同?从“autogen”中选择“平均值”(“CZK_金额”)。“投资组合_状态”,其中(“投资组合”=“Portu”)或(“投资组合”=“Degiro”)和$timeFilter GROUP BY time(1h)填充(线性)这确实起到了作用。感谢您编写代码并解释为什么会发生这种情况。