2016-03-04 221 views
1

我需要一个查询来更新在从该指标上升或下降。比如我有查找局部最小值/最大值

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,如指标栏所示。

回答

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); 

你想要一个“L”当两个前述和以下的行具有较大的值;使用类似的查询。

+0

是........这就是我一直在寻找的东西。你创造了我的一天。感谢您的大力帮助 - 曼迪 – Mandi