PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL GROUP_CONCAT() Setara

Beberapa RDBMS seperti MySQL dan MariaDB memiliki GROUP_CONCAT() fungsi yang memungkinkan Anda mengembalikan kolom kueri sebagai daftar yang dibatasi (misalnya, daftar yang dipisahkan koma).

PostgreSQL memiliki fungsi serupa yang disebut STRING_AGG() . Fungsi ini bekerja dengan cara yang hampir sama dengan GROUP_CONCAT() bekerja di MySQL dan MariaDB.

Contoh

Berikut adalah contoh dasar untuk mendemonstrasikan bagaimana STRING_AGG() PostgreSQL fungsi berfungsi:

SELECT STRING_AGG(genre, ',') FROM Genres;

Hasil:

Rock,Jazz,Country,Pop,Blues,Hip Hop,Rap,Punk

Inilah yang terjadi jika kita hanya melakukan kueri tanpa STRING_AGG() fungsi:

SELECT genre FROM Genres;

Hasil:

+---------+
|  genre  |
+---------+
| Rock    |
| Jazz    |
| Country |
| Pop     |
| Blues   |
| Hip Hop |
| Rap     |
| Punk    |
+---------+
(8 rows)

Kami mendapatkan delapan baris, masing-masing dengan nilai terpisah, bukan satu baris panjang yang dipisahkan koma dari semua nilai.

Jika ada, STRING_AGG() PostgreSQL lebih seperti GROUP_CONCAT() MySQL daripada fungsi MariaDB dengan nama yang sama. Saya mengatakan ini karena GROUP_CONCAT() MariaDB memungkinkan kami untuk memberikan LIMIT klausa (seperti dari MariaDB 10.3.3), langsung dari dalam fungsi itu sendiri. MySQL GROUP_CONCAT() tidak mendukung LIMIT klausa, dan begitu juga dengan STRING_AGG() PostgreSQL fungsi (setidaknya, tidak pada saat penulisan ini).

Perbedaan lainnya adalah STRING_AGG() PostgreSQL membutuhkan argumen kedua (yang menentukan pembatas yang akan digunakan). Baik MySQL dan MariaDB menjadikan ini opsional dengan GROUP_CONCAT() fungsi.

STRING_AGG() Postgres menerima ORDER BY klausa, dan DISTINCT klausa (seperti halnya GROUP_CONCAT() MariaDB dan MySQL fungsi).

Lihat STRING_AGG() Fungsi di PostgreSQL untuk contoh lainnya.

Dan jika Anda tertarik, SQL Server juga memiliki STRING_AGG() fungsi yang bekerja dengan cara yang hampir sama.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri parameter (pengaturan postgresql.conf) seperti max_connections

  2. Kegagalan Otomatis Database Moodle PostgreSQL

  3. Bagaimana PostgreSQL menerapkan batasan UNIK / jenis indeks apa yang digunakannya?

  4. Heroku pg:tarik gagal mengisi skema

  5. Bagaimana cara mengetahui partisi mana yang akan digunakan dalam partisi hash Postgres?