Sql 如何计算QuestDB中过去x分钟内的数据峰值

Sql 如何计算QuestDB中过去x分钟内的数据峰值,sql,questdb,Sql,Questdb,我有一个带有一些指标的表CPU,通过流入线协议,我如何运行一个查询,告诉我在过去的x分钟内数据是否超过了某个阈值 我正在尝试做一些类似的事情: 选择使用系统、时间戳 来自cpu 其中,系统的使用率>20 但是我已经把所有的记录都归还了。对于时间范围,我不想硬编码时间戳,也不想用当前时间替换它来获得相对查询 用法 时间戳 27.399999999906 2021-04-14T12:02:30.000000Z 26.400000000139 2021-04-14T12:02:30.000000Z 2

我有一个带有一些指标的表CPU,通过流入线协议,我如何运行一个查询,告诉我在过去的x分钟内数据是否超过了某个阈值

我正在尝试做一些类似的事情:

选择使用系统、时间戳 来自cpu 其中,系统的使用率>20 但是我已经把所有的记录都归还了。对于时间范围,我不想硬编码时间戳,也不想用当前时间替换它来获得相对查询

用法 时间戳 27.399999999906 2021-04-14T12:02:30.000000Z 26.400000000139 2021-04-14T12:02:30.000000Z 25.666666666899 2021-04-14T12:02:30.000000Z ... ...
以下查询将动态筛选timestamp字段上的最后5分钟,并在usage_system高于20时基于硬编码值返回行:

挑选* 来自cpu 其中,系统的使用率>20 和timestamp>dateadd'm',-5,现在; 如果要向查询中添加更多详细信息,可以交叉联接聚合值:

使用avg_usage作为从cpu选择avgusage_系统平均值 选择时间戳、cpu.usage\u system usage、average、cpu.usage\u system>avg\u usage.average Over\u average 从cpu交叉连接平均使用率 其中timestamp>dateadd'm',现在为-5; 这将添加一个高于_平均值的布尔列,根据行的usage_系统是否高于聚合,该列将为true或false:

时间戳 用法 平均的 高于平均水平 2021-04-14T13:30:00.000000Z 20 10 符合事实的 2021-04-14T13:30:00.000000Z 5. 10 错误的