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
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
Bonjour,
regardez du côté de la fonction string_agg : http://www.postgresql.org/docs/9.1/s...aggregate.html
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.
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.
en 8.1 on peut toujours créer l'aggrégat soi-même en recopiant simplement cet exemple de la doc
Et par-dessus il faut appliquer array_to_string pour arriver à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE AGGREGATE array_accum ( sfunc = array_append, basetype = anyelement, stype = anyarray, initcond = '{}' );
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select c1,array_to_string(array_accum(c2) ,',') from la_table group by c1;
ça marche , thanks a lot !
Salut, es qu'il existe une solution pour ceux qui ne peuvent pas créer de fonction ou procédure pas administrateur pas de privilèges. Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager