我有一张桌子,上面有来自物联网设备的每分钟数据.每分钟都有一个新行,其中包含时间戳和表示度量标准的值.度量标准从0开始,并在重置和重新开始之前递增一段时间.
当我绘制它时,它看起来像图片.我想找到每次运行的局部最大值,如蓝色圆圈所示.
是否可以查找和分组度量标准所在的连续行? 0然后找到每组的最大值?
更新
表结构:
+-------------+------------------+
| Field | Type |
+-------------+------------------+
| id | int(10) unsigned |
| timestamp | timestamp |
| metric_name | varchar(32) |
| value | int(10) |
+-------------+------------------+
最佳答案 这基于以下假设:
> Id是一个完美的顺序整数(没有间隙)
>您希望在0值之前直接记录值
码:
SELECT *
FROM metrics m1
WHERE m.id IN (
SELECT m2.id - 1
FROM metrics m2
WHERE m1.value = 0)