Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 15h31   #1
Membre habitué
 
Jean-Philippe CHENU
Inscription : mars 2006
Messages : 197
Détails du profil
Informations personnelles :
Nom : Jean-Philippe CHENU
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : mars 2006
Messages : 197
Points : 110
Points : 110
Par défaut Regroupement + liste

Bonjour ,

J'ai une table avec 2 colonnes c1 , c2 .

c1 c2
1 1
1 2
1 3
2 1
2 4
3 1
3 7
...

Je sèche pour une requête sql qui afficherait ceci :
c1 liste_des_c2
1 1,2,3
2 1,4
3 1,7
...

Si vous avez une idée ...

Merci d'avance
jeanphi45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 15h39   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 668
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 668
Points : 2 676
Points : 2 676
Bonjour,


regardez du côté de la fonction string_agg : http://www.postgresql.org/docs/9.1/s...aggregate.html
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 16h28   #3
Membre habitué
 
Jean-Philippe CHENU
Inscription : mars 2006
Messages : 197
Détails du profil
Informations personnelles :
Nom : Jean-Philippe CHENU
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : mars 2006
Messages : 197
Points : 110
Points : 110
Merci pour la réponse.

J'avais oublié de donner la version de postgresql de ma base : 8.1 , donc je ne peux pas appliquer la formule.
jeanphi45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 16h31   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 668
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 668
Points : 2 676
Points : 2 676
Bonjour,

8.1 ... donc pas de requete recuressive non plus.

Donc pas de solution à votre problème.
Il faudra le traiter côté applicatif ou avec une proc stoc.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 17h35   #5
Modérateur
 
Inscription : octobre 2008
Messages : 1 508
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 508
Points : 2 040
Points : 2 040
en 8.1 on peut toujours créer l'aggrégat soi-même en recopiant simplement cet exemple de la doc
Code :
1
2
3
4
5
6
7
 
CREATE AGGREGATE array_accum (
    sfunc = array_append,
    basetype = anyelement,
    stype = anyarray,
    initcond = '{}'
);
Et par-dessus il faut appliquer array_to_string pour arriver à ça:
Code :
1
2
 
SELECT c1,array_to_string(array_accum(c2) ,',') FROM la_table GROUP BY c1;
Ceci étant, la 8.1 n'est plus supportée aujourd'hui, il y a eu 5 versions majeures depuis, il faudrait vraiment envisager de passer à une version plus récente.
estofilo est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/01/2012, 13h44   #6
Membre habitué
 
Jean-Philippe CHENU
Inscription : mars 2006
Messages : 197
Détails du profil
Informations personnelles :
Nom : Jean-Philippe CHENU
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : mars 2006
Messages : 197
Points : 110
Points : 110
ça marche , thanks a lot !
jeanphi45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h18.


 
 
 
 
Partenaires

Hébergement Web