日々の株価を格納する SQL テーブルがあります。市場が閉じた後、新しいレコードが毎日挿入されます。連続して値上がりしている銘柄を見つけたい。
テーブルには多くの列がありますが、これは関連するサブセットです。
quoteid stockid closeprice createdate
--------------------------------------------------
1 1 1 01/01/2012
2 2 10 01/01/2012
3 3 15 01/01/2012
4 1 2 01/02/2012
5 2 11 01/02/2012
6 3 13 01/02/2012
7 1 5 01/03/2012
8 2 13 01/03/2012
9 3 17 01/03/2012
10 1 7 01/04/2012
11 2 14 01/04/2012
12 3 18 01/04/2012
13 1 9 01/05/2012
14 2 11 01/05/2012
15 3 10 01/05/2012
quoteid
列は主キーです。
表では、銘柄 ID 1 の終値が毎日上昇しています。在庫 ID 3 は大きく変動し、在庫 ID 2 の価格は最終日に下落しました。
私はこのような結果を探しています:
stockid Consecutive Count (CC)
----------------------------------
1 5
2 4
連続ストリークの日付を含む出力を取得できれば、さらに良いでしょう:
stockid Consecutive Count (CC) StartDate EndDate
---------------------------------------------------------------
1 5 01/01/2012 01/05/2012
2 4 01/01/2012 01/04/2012
StartDate
価格が上昇し始めたEndDate
ときであり、ブルランが実際に終了したときです。
これは簡単な問題ではないと思いました。ここで、この連続したシナリオを扱っている他の投稿を見てきましたが、私のニーズには合いません。私と似たような記事をご存知でしたら教えてください。