現在、Google Big Query データセットで価格と時間のクエリを実行するときに、精度の問題が発生しています。私が欲しいのは、5 分ごとのアセットの価格ですが、正確な 1 分間の空の行を持つアセットがいくつかあります。
たとえば、2 つの仮想通貨である VEN と ICX の場合、特定の秒間、価格データが利用できない場合があります。私のクエリでは、300 秒ごとにデータベースにクエリを実行して価格データを取得していますが、一部の資産には 5 分 0 秒のタイムスタンプがありません。したがって、最後の既知の価格を取得したいと思います。使用するのに適した価格は 4 分 58 秒です。
現在の私のクエリは次のとおりです。
SELECT MIN(price) AS PRICE, timestamp
FROM [coin_data]
WHERE coin="BTCUSD" AND TIMESTAMP_TO_SEC(timestamp) % 300 = 0
GROUP BY timestamp
ORDER BY timestamp ASC
このクエリにより、特定の場所でこの種のギャップが発生します。
Row((10339.25, datetime.datetime(2018, 2, 26, 21, 55, tzinfo=<UTC>)))
Row((10354.62, datetime.datetime(2018, 2, 26, 22, 0, tzinfo=<UTC>)))
Row((10320.0, datetime.datetime(2018, 2, 26, 22, 10[should be 5 for 5 min], tzinfo=<UTC>)))
これは最後の列の 10 であってはなりません。これは分の場所であり、5 分と表示されるはずです。