Maison >base de données >tutoriel mysql >Comment concaténer des chaînes dans une requête PostgreSQL GROUP BY ?
GROUP BY
de PostgreSQL ? Question :
Dans PostgreSQL, comment concaténer des chaînes de champs dans une requête GROUP BY
?
Exemple :
Considérons un tableau avec le schéma suivant :
ID | COMPANY_ID | EMPLOYEE |
---|---|---|
1 | 1 | Anna |
2 | 1 | Bill |
3 | 2 | Carol |
4 | 2 | Dave |
Le but est de regrouper par COMPANY_ID
et de concaténer les EMPLOYEE
valeurs, ce qui donne ce qui suit :
COMPANY_ID | EMPLOYEE |
---|---|
1 | Anna, Bill |
2 | Carol, Dave |
Solution :
PostgreSQL 9.0 ou supérieur :
string_agg(expression, delimiter)
: <code class="language-sql">SELECT company_id, string_agg(employee, ', ') FROM mytable GROUP BY company_id;</code>
PostgreSQL 8.4.x :
array_agg(expression)
pour combiner array_to_string()
: <code class="language-sql">SELECT company_id, array_to_string(array_agg(employee), ', ') FROM mytable GROUP BY company_id;</code>
PostgreSQL 8.3.x et versions antérieures :
<code class="language-sql">CREATE AGGREGATE textcat_all( basetype = text, sfunc = textcat, stype = text, initcond = '' ); SELECT company_id, textcat_all(employee) FROM mytable GROUP BY company_id;</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!