如何找到股票转折价格点

时间:2017-08-27 08:26:15

标签: sql sql-server-2008 financial stockquotes

让我知道如何在SQL中查找库存数据的转折点。例如,我们有以下数据列和N行:

Date     |Price|
20150101 | 100  |
20150102 | 50   |
20150103 | 80   |
     .
     .
     .
201708027 | 200  |

我希望找到转折点(日期和价格),以便清楚地了解下面的图片。请帮助我如何找到红点。 Sample

1 个答案:

答案 0 :(得分:3)

使用SELF JOIN

SELECT cur.*
FROM tab cur
JOIN tab prev
  ON cur.date = prev.date + 1
JOIN tab next
  ON cur.date = next.date - 1
WHERE cur.price > prev.price AND cur.price > next.price;   -- peak
-- WHERE cur.price < prev.price AND cur.price < next.price; -- bottom

使用LEADLAG将更具可读性,但可以从SQL Server 2012+获取。