找到当地最小/最大值

时间:2016-03-04 08:02:40

标签: sqlite

我需要一个查询来更新指标上升或下降的点的值。例如,我有一个表

ID      METRICS  INDICATOR
1        204.4 
2        205
3        206        H
4        204
5        199
6        198        L
7        204
8        205        H
9        201
10       199

如果您在上面的表格中看到指标列表发生逆转。反转发生的点应该用指标值H / L更新,如指标栏所示。

1 个答案:

答案 0 :(得分:0)

你想要一个" H"当前面的行和后面的行都有较小的值时:

UPDATE MyTable
SET Indicator = 'H'
WHERE Metrics > (SELECT Metrics
                 FROM MyTable AS T2
                 WHERE T2.ID < MyTable.ID
                 ORDER BY ID DESC
                 LIMIT 1)
  AND Metrics > (SELECT Metrics
                 FROM MyTable AS T2
                 WHERE T2.ID > MyTable.ID
                 ORDER BY ID ASC
                 LIMIT 1);

你想要一个&#34; L&#34;当前面和后面的行都有较大的值时;使用类似的查询。