【发布时间】:2021-11-10 03:28:10
【问题描述】:
我正在使用 InfluxDB 1.8 并尝试进行比 Influx 更复杂的查询。
我想根据我的脚本存储的标签和字段值(不是 Influx 创建的默认“时间”字段)检索所有上个月存储的数据。假设我们有这个infos 测量:
| time | field_month | field_week | tag_month | tag_week | some_data |
|---|---|---|---|---|---|
| 1631668119209113500 | 8 | 1 | 8 | 1 | random |
| 1631668119209113500 | 8 | 2 | 8 | 2 | random |
| 1631668119209113500 | 8 | 3 | 8 | 3 | random |
| 1631668119209113500 | 9 | 1 | 9 | 1 | random |
| 1631668119209113500 | 9 | 1 | 9 | 1 | random |
| 1631668119209113500 | 9 | 2 | 9 | 2 | random |
其中 8 是指 8 月,9 到 9 月,然后是 some_data,它存储在该月的给定周。
我可以使用MAX selectorfield_month 来存储一年中的最后一个月(不能使用Flux date package,因为我使用的是v1.8)。此外,我想要按tag_month 和tag_week 分组的数据,这样我就可以COUNT 在每月的每个星期存储多少次some_data,这就是为什么在字段和标签键中重复相同的数据。类似的东西:
SELECT COUNT(field_month) FROM infos WHERE field_month = 9 GROUP BY tag_month, tag_week
将 9 替换为 MAX 选择器:
SELECT COUNT(field_month) FROM infos WHERE field_month = (SELECT MAX(field_month) FROM infos) GROUP BY tag_month, tag_week
第一个查询有效 (see results here),但第二个查询无效。
我做错了吗?在 v1.8 中是否有其他可能使这项工作?
注意:我知道 Influx 不应该这样使用。我已经尝试使用 PostgreSQL 轻松管理这个问题,使用上面第二个查询的改编形式。但是,当我们理顺使用 Postgres 时,我们必须使用 InfluxDB v1.8。
【问题讨论】:
标签: sql postgresql influxdb