Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Rentetan dalam KUMPULAN PostgreSQL OLEH Pertanyaan?
GROUP BY
PostgreSQL? Soalan:
Dalam PostgreSQL, bagaimana untuk menggabungkan rentetan medan dalam pertanyaan GROUP BY
?
Contoh:
Pertimbangkan jadual dengan skema berikut:
ID | COMPANY_ID | EMPLOYEE |
---|---|---|
1 | 1 | Anna |
2 | 1 | Bill |
3 | 2 | Carol |
4 | 2 | Dave |
Matlamatnya adalah untuk mengumpulkan mengikut COMPANY_ID
dan menggabungkan nilai EMPLOYEE
, menghasilkan yang berikut:
COMPANY_ID | EMPLOYEE |
---|---|
1 | Anna, Bill |
2 | Carol, Dave |
Penyelesaian:
PostgreSQL 9.0 atau lebih tinggi:
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)
untuk menggabungkan 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 dan lebih awal:
<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>
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Rentetan dalam KUMPULAN PostgreSQL OLEH Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!