1

次のような PostgreSQL DB Sales テーブルを備えた Rails アプリがあります。

              Sales
price(decimal)   date(datetime)
100.20           11/25/2012 11:00:00
30.43            11/26/2012 03:00:00
124.43           11/25/2012 18:00:00
190.34           11/26/2012 22:00:00

DB には、このような 10 年間にわたる数千のレコードがあります。

毎日の平均販売価格を見つけ、rake タスクを介して別の DB テーブルに個別のレコードとして保存する必要があります。

さらに明確にするために、Sales を日ごとにグループ化し (データが日時形式であっても)、その日の価格値を平均する必要があります。

私には 10 年の日数があるため、毎日の各グループをループして平均を実行する機能は不可欠です。

これを書く方法について何か提案はありますか?

4

1 に答える 1

3

構文を再確認する必要がありますが、このようなものはデータベースですべてを行う必要があります...

Sales.average(:price, :group => "DATE_TRUNC('day', date)")

DATE_TRUNC は PG 固有であることに注意してください。

于 2013-01-03T19:31:58.030 に答える