これらのテーブルに特定のジオメトリがある場合、複数のテーブルから最大の日付を取得しようとしています。 マイテーブル多かれ少なかれ見ているような(もちろん、それらはすべて異なっているが、私はそれをより明確にするために、それらを短縮):複数テーブル結合の最大値を選択
テーブルタイプ:
Id, Info, Geometry, Date
をそして最後に、私は他のを持っていますそのように見えるテーブル(再び短縮):
Bテーブル:今すぐ
Id, Geometry
、私がやりたいことは、彼らジオメトリ上のすべての私のAタイプのテーブルを結合することですBテーブルのジオメトリと交差し、最新の日付を持つAテーブルを取得します。
私は現在働いている次のリクエストがあります。
UPDATE last_updateT SET date_last_update= S.dateMax
FROM
(SELECT B.gid, MAX(A.last_date) AS dateMax
FROM B
JOIN A ON ST_Intersects(B.geometry, A.geometry)
GROUP BY B.gid) S
WHERE T.id = S.gid;
今、私は一種の私が聞いたテーブルAのように見える複数のテーブルに参加すること行うことができるようにしたいと思いを機能GREATEST
しかし、私はそれを使用する方法についてはわかりません。 また、違いがある場合はPostgresql
を使用します。
ありがとうまさに私が必要としていたようです。私のAタイプのテーブルが非常に重い場合、1つの小さな質問しかし、それを行うための最も適切な方法ですか? (いくつかの行の何百万行) – Asew
はい、アプローチは大丈夫です。あなたの主な問題はとにかく、関数と交差する行しか見つからないので、テーブル全体を読み取る必要があります。この場合、 'UNION ALL'はここでうまく動作し、これを遅らせるべきではありません。 –