我可以根据InfluxQL标签的值选择其他行吗?

时间:2020-06-11 08:50:06

标签: influxdb influxql

我正在使用InfluxQL查询InfluxDB。我需要获取具有特定标签的数据。使用where子句,我可以做到这一点。但是,如果不存在此数据,则需要用另一个标签中的值替换它。

我该怎么做才能获得这样的结果?可以在单个查询中吗?

我的数据看起来有点像(相同时间戳的不同标签)。我需要提取标记为C的行,如果标记为C则不行。

time                  field                 tag      
----                  -----------------     ----------
2017-01-25T18:00:00Z  0.029411764705882353  A
2017-01-25T18:00:00Z  0.005454354378732234  B
2017-01-25T18:05:00Z  0.05555555555555555   A
2017-01-25T18:05:00Z  0.35837468955789967   B
2017-01-25T18:10:00Z  0.13333333333333333   A
2017-01-25T18:10:00Z  0.11112346774679865   B
2017-01-25T18:10:00Z  0.24321111111111111   C
2017-01-25T18:15:00Z  0.16129032258064516   A
2017-01-25T18:15:00Z  0.86543456789876546   B
2017-01-25T18:15:00Z  0.25765382928464382   C

预期结果

time                  field                 tag      
----                  -----------------     ----------
2017-01-25T18:00:00Z  0.029411764705882353  A
2017-01-25T18:05:00Z  0.05555555555555555   A
2017-01-25T18:10:00Z  0.24321111111111111   C
2017-01-25T18:15:00Z  0.25765382928464382   C

我曾经考虑过在子查询中使用诸如count之类的方法,但是我找不到能满足我所有需求的方法

SELECT field, cnt FROM 
(
    SELECT  field, count() as cnt
    FROM "series"
    WHERE 
    "tag" =~ /A|C/ AND
    GROUP BY tag
)
WHERE
"cnt" = 2 AND
"tag" = 'C'
GROUP BY tag

0 个答案:

没有答案