Influxdb / SQL获取字段数

时间:2017-06-09 09:23:30

标签: sql influxdb

我有一个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  |
+-----+-----+----+-----+----+-----+----+

如果我按照这种方式保持桌子的结构,我是不是搞砸了?

0 个答案:

没有答案