2017-08-27 71 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