我有一张桌子,上面有一张图表中的数据。
例如
index value 0 3 1 5 2 7 3 6 4 8 5 9 6 12 7 11 8 10 9 14 10 13
我需要一个查询,该查询返回值在局部最大值处的结果,即特定索引处的值大于index + 1和index-1处的值。
因此,对于示例集,它应返回索引列表:2、6、9,它们对应于值7、12、14。
我在SQLite中使用PHP。我可以用php中的foreach循环来做到这一点,但想知道是否有一种简单的方法可以仅使用SQL命令来做到这一点。
任何输入将不胜感激。
在PHP中使用单循环执行此操作可能比将其插入SQL查询中要快得多,但是如果您确实愿意,可以使用以下方法将表自身与自身连接:
SELECT b.index FROM points AS a, points AS b, points AS c WHERE a.index = b.index-1 AND c.index = b.index+1 AND a.value < b.value AND c.value < b.value
(未经测试,所以交叉指。)