Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

183
Views
Seleccione el valor máximo en una combinación de varias tablas

Estoy tratando de obtener la fecha máxima de varias tablas cuando esas tablas tienen una geometría particular. Mis tablas se ven más o menos así (por supuesto, todas son diferentes, pero las acorté para que quede más claro):

Un tipo de tabla:

 Id, Info, Geometry, Date

Y finalmente tengo otra tabla que se ve así (acortada nuevamente):

tabla B:

 Id, Geometry

Ahora, lo que quiero hacer es unir todas mis tablas de tipo A en Geometría donde se cruzan con la geometría de la tabla B, y obtener la tabla A que tiene la fecha más reciente.

Actualmente tengo la siguiente solicitud que está funcionando:

 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;

Ahora me gustaría poder hacer ese tipo de combinación en una tabla múltiple que se parece a la tabla A. He oído hablar de la función GREATEST pero no estoy seguro de cómo usarla. Además, uso Postgresql si eso hace alguna diferencia.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Parece que está buscando UNION ALL , por lo que puede tratar los datos de diferentes tablas como si fueran datos de una sola tabla:

 SELECT b.gid, MAX(x.last_date) AS dateMax FROM b JOIN ( SELECT geometry, last_date FROM a UNION ALL SELECT geometry, last_date FROM aa UNION ALL SELECT geometry, last_date FROM aaa ) x ON ST_Intersects(b.geometry, x.geometry) GROUP BY b.gid;
over 4 years ago · Santiago Trujillo Report

0

A grandes rasgos, MAX es una función agregada, por lo que usa MAX para obtener el valor más alto de la misma columna en varias filas diferentes.

GREATEST es una función escalar, usa MAYOR para obtener el valor más alto de diferentes columnas en la misma fila.

p.ej:

 SELECT GREATEST(col1,col2,col3)

Mejor: https://www.postgresql.org/docs/9.5/static/functions-conditional.html

Máx.: https://www.postgresql.org/docs/9.5/static/functions-aggregate.html

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!