次の列を持つpostgesのオブジェクト統計を含むテーブルがあります。
- id整数
- object_id integer
- タイムスタンプタイムゾーン付きタイムスタンプ
- 寸法文字が変化する
- 値の整数
エンティティ-属性-値(eav)パターンを使用していることに注意してください-エンティティはobject_id
、属性はdimension
、値はvalue
です。
dimension
オブジェクト(で指定)ごとに6つのディメンション(で指定)の値を収集するジョブが毎晩実行されobject_id
ます。
value
それぞれdimension
の最新のものを表示するレポートページを作成したいと思いますproduct
。クエリは次のようになります。
select object_id, dimension, FIRST(value) from pt_reading group by product_id, dimension order by product_id, dimension, timestamp desc;
FIRST
value
タイムスタンプの説明で並べ替えているので、最初のものを選択します。残念ながら、FIRSTは有効なアグリゲーター関数ではありません。
これを行うための最良のデザインパターンは何ですか?私はいつでもPythonでそれを書くことにフォールバックすることができましたが、それはデータベースによって処理できるもののようです。また、これを行うために使用する必要がある別のデザインパターンがある場合は、チャイムを鳴らしてください。