我试图从多个表中获取最大日期时,这些表具有特定的几何。 我的表或多或少看起来像(当然他们都不同,但我缩短他们以使其更清晰):选择多个表上的最大值加入
表类型:
Id, Info, Geometry, Date
最后我有一个其他表看起来像(再次缩短):
乙表:
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;
现在我希望能够做到那种认为加入多个表,看起来像表答:我听说过的函数GREATEST
但我不确定如何使用它。 此外,我使用Postgresql
,如果这有什么区别。
非常感谢,th似乎正是我所需要的。但是,一个小问题是,如果我的A型桌子非常重,这是最合适的方式吗? (对于某些人来说为数百万行) – Asew
是的,方法没问题。无论如何,你的主要问题是只能找到带有函数的相交行,所以必须读取整个表。在这种情况下,'UNION ALL'在这里工作得很好,不应该放慢速度。 –