私は以下のように構築されたテーブルを持っている:月次価格データ:オープン、高、低および閉じる
dpTicker dpDate dpOpen dpHigh dpLow dpClose dpVolume dpAdjClose dpCreated dpModified
GLE.PA 2016-02-01 35.39 35.455 34.375 34.785 2951300 34.785 2016-02-06 13:33:40 2016-02-06 13:33:40
GLE.PA 2016-02-02 34.515 34.565 32.165 32.575 7353600 32.575 2016-02-06 13:33:40 2016-02-06 13:33:40
GLE.PA 2016-02-03 32.4 32.495 30.885 31.6 7007000 31.6 2016-02-06 13:33:40 2016-02-06 13:33:40
GLE.PA 2016-02-04 32.075 32.38 30.67 31.98 8181000 31.98 2016-02-06 13:33:40 2016-02-06 13:33:40
GLE.PA 2016-02-05 32.55 33.0 31.86 32.11 7056700 32.11 2016-02-06 13:33:40 2016-02-06 13:33:40
データは毎日株価情報やテーブルがティッカーの数百(例えばGLEが含まれています。 PA)。各ティッカー(例:GLE.PA)には、それぞれの「営業日」のエントリがあります。
私の目的は、このデイリープライスのデータテーブルから月額料金の概要を照会することです。毎月のデータは、次のように構成されます。
- 月間オープン:dpOpen月の最初の営業日です。
- 月間高:月間最大(dp高)
- 月低い:月の分(dpLow)。
- 月閉じる:月の最後の営業日にdp閉じる。
SELECT strftime ('%Y-%m', dpDate) AS month, (SELECT dpOpen FROM DailyPrices WHERE dpTicker = 'GLE.PA' AND dpDate = (SELECT min(dpDate) FROM DailyPrices WHERE strftime('%Y%m', dpDate) = '201509' ) ) AS Open, max(dpHigh) AS High, min (dpLow) AS Low, (SELECT dpClose FROM DailyPrices WHERE dpTicker = 'GLE.PA' AND dpDate = (SELECT max(dpDate) FROM DailyPrices WHERE strftime('%Y%m', dpDate) = '201509' ) ) AS Close FROM DailyPrices WHERE dpTicker ='GLE.PA' AND strftime('%Y%m', dpDate) = '201509';
次のようにクエリの出力は次のとおりです:
bash-3.2$ sqlite3 myShares < month.sql month Open High Low Close ---------- ---------- ---------- ---------- ---------- 2015-09 42.72 44.07 37.25 39.85 bash-3.2$
以下で、私は、SQLite3の中に次のクエリを使用して、特定の月のデータを照会するために管理
クエリ私は高低の毎月の概要を生成することができます:
SELECT
strftime('%Y-%m', dpDate) AS Month,
max(dpHigh) AS High,
min(dpLow) AS Low
FROM DailyPrices
WHERE dpTicker ='GLE.PA'
GROUP BY strftime('%Y%m', update);
次のように
出力のスナップショットが見えます:
SELECT
strftime('%Y-%m', dpDate) AS Month,
dpOpen AS Open
FROM DailyPrices
WHERE dpTicker = 'GLE.PA'
AND dpDate IN
(SELECT min(dpDate)
FROM DailyPrices
WHERE dpTicker = 'GLE.PA'
GROUP BY strftime('%Y%m', dpDate)
);
出力のスナップショット:次のクエリでは
bash-3.2$ sqlite3 myShares < monthly.sql
Month High Low
---------- ---------- ----------
2000-01 219.32 184.346
2000-02 206.43 181.977
2000-03 210.411 181.503
2000-04 221.405 197.805
2000-05 226.239 55.9199
...
、私は正しいオープンと類推することにより、正しい閉じるデータを抽出するために管理します私は、次のような出力を得るために、1つのクエリに、クエリ、month.sqlとopen.sqlを組み合わせるために苦労しています
bash-3.2$ sqlite3 myShares < Open.sql
Month Open
---------- ----------
2000-01 218.846
2000-02 200.269
2000-03 206.525
2000-04 201.312
2000-05 215.908
...
:次のとおりである
Month Open High Low Close
------- ----- ----- ----- -----
2015-01 42.79 42.79 33.69 35.18
2015-02 35.39 35.46 26.61 32.42
2015-03 32.32 37.65 31.93 32.48
...
この問題を解決する助けとなることは非常に感謝しています。 よろしく
GAM
を実行しますが、すべての月のためにしているクエリですか? –
はい、これは正しいです。 –