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

269
Vistas
Recopile todos los nodos hoja con Postgres ltree

He estado usando la construcciónltree de Postgres para almacenar una estructura jerárquica. Ahora, quiero recolectar todos los nodos de hojas en el árbol. ¿Hay un mecanismo directo para hacer esto?

 CREATE TABLE foo AS SELECT node::ltree FROM ( VALUES ('Top.Astronomy'), ('Top.Astronomy.Astrophysics'), ('Top.Pictures'), ('Top.Pictures.Stars') ) AS t(node);

como regreso

 Top.Astronomy.Astrophysics Top.Pictures.Stars
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Usando @>

Una forma es usar el operador contiene @>

 SELECT * FROM foo AS f1 WHERE NOT EXISTS ( SELECT * FROM foo AS f2 WHERE f1.node @> f2.node AND f1.node <> f2.node ); node ---------------------------- Top.Astronomy.Astrophysics Top.Pictures.Stars (2 rows)
over 4 years ago · Santiago Trujillo Denunciar

0

Si las hojas siempre están en el tercer nivel, haz esto:

 SELECT * FROM foo WHERE node ~ '*{2}.*';

Los cuantificadores son bastante útiles. También puede encontrar nodos en medio de una rama larga. Para usar la tabla de prueba de ejemplo de PostgreSQL en los documentos en https://www.postgresql.org/docs/current/static/ltree.html

 SELECT * FROM test WHERE path ~ '*{2}.Astronomy.*{1}';

coincidirá solo con la 'Astronomía' en la tercera parte de una rama de cuatro longitudes.

También podría tener otra columna como bandera para indicar si es una hoja o no. ( Por cierto, los operadores @<> requieren el índice esencial, y descubrí que es significativamente más lento en un conjunto de datos grande. Lo eliminé y solo usé el operador btree ~. Lo eliminé y funciona bien, solo que no es necesario, Supongo.)

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