Fungsi Agregat String SQL

Fungsi Agregat String Sql



Jika Anda pernah berurusan dengan database SQL, Anda mungkin familiar dengan fungsi agregat. Mereka pada dasarnya adalah sekumpulan fungsi yang melakukan penghitungan pada sekumpulan nilai dan mengembalikan satu hasil.

Contohnya mencakup fungsi seperti SUM(), AVG(), COUNT(), MAX, dan MIN(). Namun, satu hal yang akan Anda perhatikan tentang fungsi agregat di SQL adalah bahwa fungsi tersebut diarahkan pada operasi numerik.

Namun tahukah Anda bahwa ada fungsi agregat yang berhubungan dengan nilai string? Dalam tutorial ini, kita akan melihat fungsi-fungsi ini, cara kerjanya, dan bagaimana kita dapat menggunakannya dalam database kita.







CATATAN: Perlu diperhatikan bahwa sebagian besar fungsi yang dibahas dalam posting ini bukan bagian dari SQL standar. Hasilnya, mereka merupakan perpanjangan dari berbagai mesin database seperti PostgreSQL, SQL Server, dll.



Apa Itu Fungsi Agregat String?

Fungsi agregat string adalah sekumpulan fungsi yang melakukan operasi agregasi pada sekumpulan string dalam grup atau baris dan mengembalikan hasil tunggal.



Kami terutama menggunakan fungsi ini dengan klausa GROUP BY untuk mengelompokkan baris berdasarkan kolom tertentu dan kemudian menggabungkan string di setiap grup.





Beberapa fungsi agregat string yang umum meliputi:

  • GROUP_CONCAT() – PostgreSQL dan MySQL
  • STRING_AGG – SQL Server
  • ARRAY_AGG – PostgreSQL
  • DAFTARGG – Oracle

Mari kita jelajahi setiap fungsi dan apa yang disediakannya.



GROUP_CONCAT()

Fungsi GROUP_CONCAT() didukung oleh database PostgreSQL dan MySQL. Hal ini memungkinkan kita untuk menggabungkan nilai dari beberapa baris menjadi satu string.

Misalkan kita mempunyai tabel “karyawan” sebagai berikut:

BUAT TABEL karyawan (
Employee_id INT AUTO_INCREMENT KUNCI UTAMA,
nama_depan VARCHAR(50),
nama_belakang VARCHAR(50),
departemen VARCHAR(50)
);

MASUKKAN KE NILAI karyawan (nama_depan, nama_belakang, departemen).
('Alice', 'Smith', 'Sumber Daya Manusia'),
('Bob', 'Johnson', 'Pemasaran'),
('Charlie', 'Wilson', 'Keuangan'),
('David', 'Coklat', 'Penjualan'),
('Eva', 'Davis', 'Teknik');

Keluaran:

Jika kita ingin menentukan nama lengkap karyawan dengan mengambil nama depan dan menggabungkannya dengan nama belakang, kita dapat menggunakan fungsi GROUP_CONCAT() seperti yang ditunjukkan pada contoh berikut:

PILIH
departemen,
GROUP_CONCAT(nama_depan, ' ', nama_belakang) SEBAGAI nama_lengkap
DARI
karyawan
KELOMPOK OLEH
departemen;

Dalam hal ini, kita menggunakan fungsi untuk menggabungkan string dari kolom “nama_depan” dan “nama_belakang”, dan string kosong untuk menambahkan spasi pada nama.

Ini berisi daftar karyawan di setiap departemen.

STRING_AGG

Fungsi ini mirip dengan fungsi GROUP_CONCAT() tetapi hanya didukung di database SQL Server.

Contoh penggunaannya adalah sebagai berikut:

PILIH
departemen,
STRING_AGG(nama_depan, nama_belakang, ' ') SEBAGAI nama_lengkap
DARI
karyawan
KELOMPOK OLEH
departemen;

Ini melakukan penggabungan string pada kolom yang ditentukan sebagai spasi sebagai pembatas.

ARRAY_AGG

Fungsi ARRAY_AGG hanya tersedia di database PostgreSQL. Ini memungkinkan kita untuk menggabungkan nilai ke dalam satu array.

Contohnya adalah sebagai berikut:

PILIH
departemen,
ARRAY_AGG(nama_depan) SEBAGAI daftar_karyawan
DARI
karyawan
KELOMPOK OLEH
departemen;

Ini harus menggabungkan nama karyawan sebagai array.

DAFTARGG()

Fungsi LISTAGG() hanya tersedia di database Oracle. Ini memungkinkan kita untuk menggabungkan nilai menjadi satu string dengan pembatas yang ditentukan.

Contohnya adalah sebagai berikut:

PILIH departemen, LISTAGG(nama_depan, nama_belakang,  ' ') DALAM KELOMPOK (ORDER BERDASARKAN nama_karyawan ASC) SEBAGAI karyawan
DARI karyawan
KELOMPOK BERDASARKAN departemen;

Ini menggabungkan nama karyawan dan pembatas yang ditentukan.

Kesimpulan

Dalam tutorial ini, kita belajar tentang fungsi agregat string yang memungkinkan kita memberikan daftar nilai string dan melakukan operasi ke dalam satu nilai string yang dihasilkan.