
Di PostgreSQL, ada fungsi agregat bawaan termasuk SUM, COUNT, ARRAY_AGG ( ), STRING_AGG ( ), AVG ( ), MAX, MIN dll. Tujuan useran fungsi agregat dalam kode Anda adalah untuk menentukan keluaran dari sekumpulan nilai. Pada artikel ini, kita akan membahas fungsi STRING_AGG ( ). STRING_AGG ( ) adalah fungsi agregat yang terdiri dari dua parameter; parameter pertama mengambil nilai input dan menggabungkan nilai menjadi string. Pada parameter kedua, Anda menentukan pembatas yang memisahkan parameter pertama.
Fungsi STRING_AGG ( ) dan fungsi ARRAY_AGG ( ) bekerja sama kecuali bahwa STRING_AGG ( ) adalah fungsi agregat yang mengembalikan hasil sebagai tipe string sedangkan fungsi ARRAY_AGG ( ) mengembalikan Anda tipe array sebagai hasil.
Artikel ini adalah panduan lengkap untuk menjelaskan fungsi agregat STRING_AGG ( ) di PostgreSQL. Anda akan menyaksikan berbagai contoh fungsi STRING_AGG ( ) di PostgreSQL dengan penjelasan terperinci. Sintaks berikut akan membantu Anda mendapatkan pemahaman dasar tentang useran fungsi STRING AGG() di PostgreSQL:
STRING_AGG ( value, delimiter )
Dalam sintaks di atas,
- Pertama, tulis fungsi STRING_AGG() dengan tanda kurung ( ). Fungsi SRING_AGG() mengambil dua parameter.
- Pada parameter pertama, ‘nilai’ adalah nilai teks apa pun yang merupakan karakter string. Jika Anda memasukkan tipe data selain karakter string, nilai tersebut tidak akan digunakan sebagai input.
- Pada parameter kedua, ‘pembatas’ memisahkan string yang digabungkan.
STRING_AGG() juga menggunakan klausa ORDER BY dalam pernyataan. Ini opsional jika Anda ingin output berada dalam urutan tertentu, maka Anda dapat menggunakan klausa ORDER BY dengan fungsi STRING_AGG(). Di bawah ini adalah contoh useran klausa ORDER BY dalam pernyataan:
STRING_AGG ( value, delimiter [ ORDER_BY_CLAUSE ] )
Anda dapat menambahkan kondisi yang ditentukan dalam ‘ ORDER_BY_CLAUSE ‘ menggunakan fungsi ORDER BY dalam pernyataan seperti itu:
ORDER BY value1 ASC | DESC,...
Fungsi ORDER BY dapat dinyatakan dalam bentuk ascending atau descending pada pernyataan sesuai dengan nilai (value1) yang tertulis.
Anda juga dapat menggunakan klausa GROUP BY dalam pernyataan; itu memberitahu baris yang dikelompokkan dalam tabel.
STRING_AGG ( ) Function Examples in PostgreSQL:
Untuk menggunakan fungsi STRING_AGG ( ) dalam pernyataan, Anda harus terlebih dahulu membuat tabel sampel untuk contoh di PostgreSQL. Di bawah ini adalah kode untuk membuat tabel sampel di PostgreSQL:
CREATE TABLE players (
player_name TEXT,
team_name TEXT,
player_positon TEXT
) ;
Sintaks di atas akan membuat tabel di database dengan nama “pemain” dan kolom sebagai nama_pemain, nama_tim, dan posisi_pemain. PostgreSQL memberikan pesan berikut:
Untuk memverifikasi bahwa tabel dibuat dengan kolom yang ditentukan, jalankan kueri SELECT di bawah ini:
SELECT * FROM "players" ;
Sekarang, masukkan beberapa nilai pada tabel “players” dengan perintah INSER INTO:
INSERT INTO "players"
VALUES ( 'Chris', 'West Indies', 'Batsman' ), ( 'Shannon', 'West Indies', 'Bowler'),
('Bravo', 'West Indies', 'Batsman');
INSERT INTO "players"
VALUES ( 'James', 'New Zealand', 'All rounder' );
INSERT INTO "players"
NILAI ( ‘Shaheen’, ‘Pakistan’, ‘Bowler’ ), ( ‘Sarfaraz’, ‘Pakistan’, ‘Penjaga gawang’ );
Nilai di atas dimasukkan ke dalam tabel “pemain” menggunakan perintah INSERT INTO dan VALUES dalam pernyataan, dan kami dapat mengonfirmasinya dengan menjalankan pernyataan SELECT di bawah ini:
SELECT * FROM "players" ;
Nilai yang ditentukan dalam perintah INSERT INTO sekarang berhasil dieksekusi dan dapat dilihat pada output di atas.
Menghasilkan Nilai yang Dipisahkan Koma Menggunakan STRING_AGG() di PostgreSQL:
Untuk menghasilkan daftar nilai yang dipisahkan dengan koma, kita akan menggunakan fungsi STRING_AGG ( ) dalam pernyataan. Di bawah ini adalah pernyataan untuk menghasilkan nilai yang dipisahkan dengan koma:
SELECT "team_name",string_agg("player_name", ',' )
FROM "players" GROUP BY "team_name" ;
Kami telah menggunakan fungsi STRING_AGG() untuk memisahkan kolom “player_name” dengan koma dalam pernyataan SELECT. Dalam parameter pertama STRING_AGG() ekspresi didefinisikan yang ingin kita pisahkan; di parameter kedua, kami telah menggunakan koma ‘, ‘ sebagai pembatas atau pemisah untuk memisahkan nilai. Kami telah menggunakan perintah GROUP BY untuk membagi baris sehubungan dengan kolom “nama_tim”. Output untuk sintaks di atas ditampilkan sebagai:
Nilai “player_name” digabungkan dengan koma pada output di atas dan ditampilkan dengan “team_name”.
Memisahkan Beberapa Kolom dengan Koma Menggunakan STRING_AGG() di PostgreSQL:
Kita dapat menggunakan lebih dari satu fungsi STRING_AGG() dalam pernyataan SELECT tunggal. Contoh di bawah ini menunjukkan demonstrasi itu:
SELECT "team_name",string_agg("player_name",', '), string_agg("player_positon",',')
FROM "players" GROUP BY "team_name";
Saya telah menggunakan dua fungsi STRING_AGG() dalam dua kolom berbeda untuk menggabungkan nilai kolom dengan pemisah koma. Pernyataan di atas menunjukkan hasil sebagai berikut:
Terlihat bahwa nilai dua kolom sekarang dipisahkan dengan koma dan menghasilkan daftar.
Kami tidak tahu nama kolom dalam output di atas mereka disebutkan sebagai nama “string_agg” default, kami dapat menentukan nama kolom menggunakan fungsi AS dalam pernyataan di atas. Ini adalah sintaks untuk menggunakan fungsi AS dan
menentukan nama ke kolom:
SELECT "team_name",string_agg ("player_name", ',') AS players_name,
string_agg ("player_positon", ',') AS players_positions
FROM "players" GROUP BY "team_name";
Dalam pernyataan di atas, dengan fungsi STRING_AGG(), saya telah menentukan kata kunci AS dengan nama yang diinginkan, menampilkan nama di kolom. Kita dapat melihat pada output di bawah ini:
Kolom yang pertama secara default bernama “string_agg” sekarang dinamai “players_name” dan “players_positions”.
Kesimpulan:
Kami telah belajar di artikel ini tentang fungsi STRING_AGG() di PostgreSQL, definisinya, userannya, dan implementasinya. Fungsi STRING_AGG() dapat digunakan untuk menghasilkan nilai yang dipisahkan koma dengan kolom tunggal dan ganda juga. Kata kunci AS dapat digunakan untuk menampilkan nama tertentu ke kolom yang dipilih.