Bonjour,

Je fais à nouveau appel à l'expertise des membres de ce forum pour m'aider à résoudre un problème dont la solution n'a pas été trouvée après moult tests et recherches.

Je cherche à obtenir l'identifiant start_end dont la valeur de la colonne tot_cost est la plus grande tout en faisant un regroupement par start_vid.

(il s'agit de données à composante spatiale générées à partir de l'extension pg_routing de PostGIS. )


  • start_end correspond aux identifiants du début et de fin de chaque chemin concaténés et séparés par un "_"
  • tot_cost correspond à la longueur totale en mètres de chaque chemin
  • start_vid correspond à l'identifiant du premier nœud de chaque chemin
  • num_plat correspond à l'identifiant d'un objet spatial en lien avec le chemin


Ma requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
CREATE TABLE "TEST2"."test" AS
SELECT "t1"."start_vid" as "start_vid", max("t1"."tot_cost") as "tot_cost","t1"."start_end" as "start_end","t1"."num_plat" as "num_plat"
FROM "TEST2"."graph2" as "t1"
GROUP BY "start_vid","start_end","num_plat"
... me donne presque le résultat attendu mais je conserve toujours plusieurs lignes pour un même nœud de départ start_vid :
Nom : Capture.JPG
Affichages : 371
Taille : 53,6 Ko

Je souhaiterais obtenir qu'une ligne par start_vid avec son identifiant start_end dont la valeur comprise dans tot_cost est la plus grande par start_vid. Dans l'exemple ce sont les lignes 460 et 361 pour les start_vid 1 et 44.

J'espère avoir été clair. Merci de m'avoir lu et merci d'avance pour vos réponses.