我有一个Influxdb表,可以调用它my_table
my_table
的结构如下(简化):
+-----+-----+-----
| Time| m1 | m2 |
+=====+=====+=====
| 1 | 8 | 4 |
+-----+-----+-----
| 2 | 1 | 12 |
+-----+-----+-----
| 3 | 6 | 18 |
+-----+-----+-----
| 4 | 4 | 1 |
+-----+-----+-----
但是我想知道是否有可能找出每次有多少指标大于某个(动态)阈值。
所以我想说我想知道有多少指标(列)高于5, 我想做这样的事情:
select fieldcount(/m*/) from my_table where /m*/ > 5
返回:
1
1
2
0
我在构建数据库方面受到相对限制,因为我正在使用钻石收集器(python)来处理我的所有数据收集并将其刷新到我的Influxdb而不告诉表格应该是什么样的。
修改
如果我对阈值进行硬编码并添加名为mGreaterThan5
的第三个指标:
+-----+-----+------------------+
| Time| m1 | m2 |mGreaterThan5|
+=====+=====+====+=============+
| 1 | 8 | 4 | 1 |
+-----+-----+----+-------------+
| 2 | 1 | 12 | 1 |
+-----+-----+----+-------------+
| 3 | 6 | 18 | 2 |
+-----+-----+----+-------------+
| 4 | 4 | 1 | 0 |
+-----+-----+----+-------------+
然而,这意味着我无法轻易将此阈值更改为6或任何其他数字,这就是为什么我更喜欢更好的解决方案(如果有的话)。
EDIT2
尝试检索最高x量的指标时会出现另一个类似的问题。例如:
1月1日m的最高3个值是多少?给出表:
+-----+-----+----+-----+----+-----+----+
| Time| m1 | m2 | m3 | m4 | m5 | m6 |
+=====+=====+====+=====+====+=====+====+
| 1/1 | 8 | 4 | 1 | 7 | 2 | 0 |
+-----+-----+----+-----+----+-----+----+
如果我按照这种方式保持桌子的结构,我是不是搞砸了?