【发布时间】:2021-08-29 17:23:06
【问题描述】:
我有一个名为 cpu_usages 的表,我正试图找出 cpu 使用率的峰值。我的表存储 4 列:
id serial
at timestamp
cpu_usage float
cpu_core int
at 列存储每天每分钟的时间戳。 我想选择我获取每个时间戳并获取接下来 3 分钟的所有行,如果任何时间戳的 cpu_value 比该时间戳的起始值至少高 3%,则返回它
例如,如果我有这些行:
id|at|cpu_values,cpu_core
1 | 2019-01-01-00:00|1|0
2 | 2019-01-01-00:01|1|0
3 | 2019-01-01-00:02|4|0
4 | 2019-01-01-00:03|1|0
5 | 2019-01-01-00:04|1|0
6 | 2019-01-01-00:05|1|0
7 | 2019-01-01-00:06|1|0
8 | 2019-01-01-00:07|1|0
9 | 2019-01-01-00:08|6|0
10 | 2019-01-01-00:00|1|1
11 | 2019-01-01-00:01|1|1
12| 2019-01-01-00:02|4|1
13 | 2019-01-01-00:03|1|1
14 | 2019-01-01-00:04|1|1
15 | 2019-01-01-00:05|1|1
16 | 2019-01-01-00:06|1|1
17 | 2019-01-01-00:07|1|1
18 | 2019-01-01-00:08|6|1
它将返回行: 1,2,6,7,8
我不知道该怎么做,因为听起来它需要某种嵌套连接。
谁能帮我解决这个问题?
【问题讨论】:
-
什么是“它”?第一个时间戳还是更大的时间戳?
-
第一个时间戳
标签: sql postgresql time-series