Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 12 February 2020 18:37

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Afficher des pairs - Postgre

Bonjour à tous,

Disposant d'une table représentant des allés/retour entre commune et d'un champ d'entier, j'aimerais pouvoir faire une somme de ce dernier en regroupant les paires de destinations. Voici un exemple :

Je voudrais passer de ceci :

DEPART; ARRIVE; COUT_PEAGE

MARSEILLE; LA CIOTAT; 10
LA CIOTAT; MARSEILLE; 12
AUBAGNE; MARSEILLE; 20
MARSEILLE; AUBAGNE; 24

a ceci :

TRAJET; COUT_PEAGE

MARSEILLE - LA CIOTAT; 22
AUBAGNE - MARSEILLE; 44

Je ne sais pas trop comment m'y prendre.

Merci.

Hors ligne

 

#2 Wed 12 February 2020 19:55

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1132

Re: Afficher des pairs - Postgre

Salut,

il faut joindre la table sur elle même et utiliser
la condition de jointure pour créer les paires.

Ne pas oublier de supprimer les doublons avec
distinct et la sous requête pour créer la chaine.
Sans ça on aurait :

MARSEILLE-AUBAGNE; 44
AUBAGNE-MARSEILLE; 44

Code:

SELECT DISTINCT
   ( SELECT 
         string_agg(v, ' - ' ORDER BY v)
     FROM 
        (VALUES (t1.depart), (t1.arrivee)) as foo(v)
    )AS TRAJET,
   t1.cout + t2.cout as cout_peage
FROM 
     trajet as t1 
JOIN 
     trajet as t2
     ON t1.depart = t2.arrivee  
     AND t2.depart = t1.arrivee

Lien vers un fiddle pour voir le résultat :
http://sqlfiddle.com/#!17/3577a/15

Dernière modification par tumasgiu (Wed 12 February 2020 20:15)

Hors ligne

 

#3 Wed 12 February 2020 20:01

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: Afficher des pairs - Postgre

Un grand merci a vous smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB