【问题标题】:Obtain duration when certain variable value InfluxQL获取某个变量值 InfluxQL 时的持续时间
【发布时间】:2022-09-24 11:14:50
【问题描述】:

我正在使用 InfluxQL 语言从 InfluxDB 中提取数据。当我有一个具有 True 值的变量时,我想获得持续时间。

我的数据库上有这个:

时间运行

2022-09-16 09:00:00 假

2022-09-16 09:05:00 错误

2022-09-16 09:10:00 真

2022-09-16 09:40:00 真

2022-09-16 10:00:00 假

2022-09-16 12:00:00 真

2022-09-16 12:10:00 假

我想得到这个结果:

持续时间真实:1小时

1 小时 = 50 分钟 (09:10-10:00) + 10 分钟 (12:00-12:10)

有人可以给我一个关于 InfluxQL 查询的建议吗?

谢谢!

    标签: sql influxdb influxql


    【解决方案1】:

    在 InfluxDB 中报告给定状态的总持续时间是可行的,但仅在 Flux 中而不是在 InfluxQL 中(很容易)。 您可以尝试以下步骤:

    1. 在 v1.8 中启用 Flux 并更改配置 here

    2. 将数据类型从 True/False 更改为 1/0,以便利用内置函数

    3. 样品通量可能是:

      来自(桶:“yourDatabaseName/autogen”)|> 范围(开始:2022-09-16T00:00:00Z,停止:2022-09-16T23:59:59Z)|> 过滤器(fn:(r)=> r ._measurement == "yourMeasurementName") |> stateDuration(fn: (r) => r._value == 1, column: "state", unit: 1m)

      同样,尽管社区已经等待了一段时间,但在 InfluxQL 中仍然无法做到这一点。查看更多详细信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 2016-02-23
      相关资源
      最近更新 更多