2017-08-27 34 views
0

讓我知道如何查找SQL中庫存數據的車削價格點。例如,我們有以下數據列和N行:如何查找庫存車削價格點

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

,我想找到轉折點(日期和價格),要了解清楚進行以下檢查image.please幫助我如何找到紅點。 Sample

+0

你想要預測嗎?然後,您正在尋找Holt-Winters-Brown平滑和「變點分析」(因爲您需要平滑曲線上的拐點來濾除噪音)。 – Koshinae

+0

@Koshinae其實我正在尋找過去的買入和賣出價格,然後執行那些未來的股票價格 – MahdiIBM

+0

你仍然必須平滑曲線來找到拐點。 – Koshinae

回答

2

使用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+

+0

基於這個問題,這是正確的答案。如果每天都有報價,我會感到驚訝。如果是這樣,OP應該接受這個答案並且詢問另一個問題,用更合適的樣本數據以及更好地解釋在假期和週末要做什麼。 –

+0

@ lad2025感謝您的回答,但它對我來說不夠準確。 – MahdiIBM