私はunit_id oid、time timestamp、diag byteaという単純なテーブルを持っています。主キーは、timeとunit_idの両方の組み合わせです。Postgresはすべての列を1つの列でグループ分けして選択します。
このクエリの背後にある考え方は、ユニークなunit_idごとに最新の行(最大のタイムスタンプ)を取得することです。ただし、最新の時刻を持つ各unit_idの行は必ずしも返されません。
私は本当にunit_idでグループ化したいと思っていますが、私はそれを選択しているので、postgresでdiagも使用しています。
SELECT DISTINCT ON(unit_id) max(time) as time, diag, unit_id
FROM diagnostics.unit_diag_history
GROUP BY unit_id, diag
サブセレクトを使用せずにこれを行うことはできますか? – metdos
@metdos:私は頭の上から何も考えられませんが、方法があるかもしれません。派生テーブルの何が問題ですか? –