私の Rails アプリの PostgreSQL DB には、過去 10 年間の時間料金を含むレコードがあります。
これらの 10 (24 x 365): "12/31/2012 01:00:00"、"11.99"
次のクエリは、日ごとに価格をグループ化し、日ごとのグループの価格を平均して日別の価格平均を作成し、各日の「日」と「日平均」のペアを返します。
HourlyPrice.average(:price, :group => "DATE_TRUNC('day', date)")
問題は、ソース データの 1 時間あたりの料金が実際には前の 1 時間の料金を反映していることです。したがって、私のデータ ソース .CSV では、1 日は 01:00:00 に始まり、24:00:00 に終わります。
これは、PostgreSQL が DateTime 列にレコードを保存する方法と競合します。CSV データをインポートすると、PostgreSQL は時刻 24:00:00 を含むレコードを翌日の 00:00:00 に変換します。
これにより、上記の平均化クエリの精度が低下します。クエリを修正するために、日ごとにグループ化したいのですが、オフセットを 1 時間にします。したがって、平均範囲は 01:00:00 から始まり、翌日の 00:00:00 の値で終わります。
これを反映するように上記のクエリを調整することは可能ですか?