2

時間と期間、およびデータベース内の特定の時間単位と開始/終了時間の交差を処理す​​るアプリを構築しています。次に例を示します。

データベース:

Row # | start - end
Row 1 | 1:00 - 4:00
Row 2 | 3:00 - 6:00

2 つの特定の時間の間の時間の合計を選択できるようにしたい、または GROUP BY INTERVAL を使用して、返されたレコードセットが特定の間隔中に合計ごとに 1 つの行を持つようにしたいと考えています。

SELECT length( (start, end) )  WHERE (start, end) INTERSECTS (2:00,4:00)

(この場合 (start,end) は、Postgres Temporal および pg9.2 の新しいデータ型である PERIOD です)

戻るだろう

INTERVAL 3 HOURS

行 1 は 2:00 から 4:00 の間に 2 時間あり、行 2 はその間に 1 時間あるためです。

さらに、次のことができるようになりたいです。

SELECT "lower bound of start", length( (start, end) )  GROUP BY INTERVAL 1 HOUR

返品したいもの:

1:00 | 1
2:00 | 1
3:00 | 2
4:00 | 2
5:00 | 1

これは、指定された間隔中の 1 時間ごとに 1 つの行と、その間隔の開始時の時間の合計を示します

これには、Postgres Temporal と Postgres 9.2 にある PERIOD 型が使用できると思います。ただし、現時点では、これらは Heroku では利用できません。

Heroku でこの種の数学を有効にするにはどうすればよいですか?

4

1 に答える 1

1

実行してみてください:

 heroku addons:add heroku-postgresql:dev --version=9.2

これにより、範囲タイプがサポートされている 9.2 バージョンが得られます。これは現在非常にアルファ版であるため、フィードバックは dod-feedback@heroku.com までお送りください。

于 2012-09-27T18:34:57.483 に答える