#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: 1218
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.arriveeLien 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 ![]()
Hors ligne


