Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

143
Vistas
Obtenga un valor máximo por grupo

Necesito conservar una fila por grupo de nombres de la tabla:

 ID | Name | Attribute1| Attribute2 | Attribute3 1 | john | true | 2012-20-10 | 12345670 2 | john | false | 2015-20-10 | 12345671 3 | james | false | 2010-02-01 | 12345672 4 | james | false | 2010-02-03 | 12345673 5 | james | false | 2010-02-06 | 12345674 6 | sara | true | 2011-02-02 | 12345675 7 | sara | true | 2011-02-02 | 12345676

...según criterios especificados. En primer lugar, se deben conservar las filas con verdadero en el Atributo1 (si está presente), luego con la fecha máxima (Atributo2), y si eso no resulta en una fila, la que tiene el Atributo3 máximo.

El resultado deseado es:

 ID|Name|Attribute1|Attribute2|Attribute3 1 | john | true | 2012-20-10 | 12345670 5 | james | false | 2010-02-06 | 12345674 7 | sara | true | 2011-02-02 | 12345676

Traté de hacer eso con uniones anidadas, pero eso parece ser demasiado complicado. Una solución simple es hacer primero el resultado SQL de ORDER BY:

 CREATE TABLE output AS SELECT ID, Name, Attribute1, Attribute2, Attribute3 FROM input ORDER BY Name, Attribute1 DESC, Attribute2 DESC, Attribute3 DESC;

y haga el ciclo para cada fila y verifique y almacene en caché si el nombre ocurrió antes; si no, consérvelo (y almacene el nombre en alguna variable global), de lo contrario, elimine la fila.

¿Hay alguna otra solución de SQL puro?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para PostgreSQL:

 select distinct on (name) * from t order by name, attribute1 desc, attribute2 desc, attribute3 desc

https://www.postgresql.org/docs/current/static/sql-select.html#SQL-DISTINCT

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda