让我知道如何在SQL中查找库存数据的转折点。例如,我们有以下数据列和N行:
Date |Price|
20150101 | 100 |
20150102 | 50 |
20150103 | 80 |
.
.
.
201708027 | 200 |
答案 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
使用LEAD
和LAG
将更具可读性,但可以从SQL Server 2012+
获取。