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;
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
Partager