Friday , December 12 2025
Join Table PostgreSQL 18

Join Table PostgreSQL 18

Join Table PostgreSQL 18

lebakcyber.net – Join Table PostgreSQL 18. Sekarang kita akan membahas mengenai bagaimana cara untuk melakukan join table di database PostgreSQL 18.

Join table sendiri merupakan suatu perintah SQL yang bisa dipakai untuk menggabungkan dua atau lebih tabel dari kolom yang terkunci atau terhubung seperti Primary Key atau Foreign Key agar bisa mendapatkan satu data yang lengkap.

Contohnya kita ingin menampilkan nama pegawai dan juga nama bidang dari pegawai tersebut. Perintah SQLnya seperti dibawah ini :

SELECT n.nama_pegawai, b.nama_bidang FROM pegawai n 
JOIN bidang b ON b.id_bidang = n.id_bidang;

Setelah perintah join table untuk menampilkan nama pegawai beserta dengan nama bidang dimana pegawai tersebut berada, maka hasilnya seperti dibawah ini :

      nama_pegawai      | nama_bidang
------------------------+-------------
 Firdan Ardiansyah      | IT
 Arsyanendra Ardiansyah | HRD
 Nur Arsy Ardiansyah    | Pemasaran
 Ratna Dwi Sartika      | Keuangan

Aggregasi & GROUP BY

Selain itu, kita juga bisa menggunakan fungsi Join Table untuk menghitung total ataupun nilai rata-rata dengan memakai fungsi agregasi.

Misalnya kita ingin mengetahui berapa jumlah total pegawai dari masing-masing bidang yang ada, maka kita bisa memasukan perintah seperti dibawah ini :

SELECT b.nama_bidang, COUNT(*) AS jumlah_pegawai FROM pegawai p
JOIN bidang b ON b.id_bidang = p.id_bidang GROUP BY b.nama_bidang;

Nanti hasilnya akan menampilkan nama bidang dan juga total pegawai yang di masing-masing bidang tersebut seperti dibawah ini :

 nama_bidang | jumlah_pegawai
-------------+----------------
 HRD         |              1
 Keuangan    |              1
 Pemasaran   |              1
 IT          |              1

Mencari Nilai Rata-Rata

Selanjutnya kita coba untuk mencari nilai rata-rata gaji pegawai pada semua bidang, tapi kita tambahkan terlebih dahulu satu pegawai baru untuk bidang IT agar bisa terlihat nilai rata-rata gajinya. perintahnya seperti dibawah ini :

INSERT INTO pegawai (nama_pegawai, gaji, id_bidang)
VALUES
('Muhammad Bilal', 10000000, 1);

Sekarang pastikan kalau pegawai baru dengan nama Muhammad Bilal dengan gaji 10 juta dan bekerja di bidang IT sudah masuk dengan perintah berikut :

select * from pegawai;

Dan hasil querynya seperti dibawah ini :

 id_pegawai |      nama_pegawai      |    gaji     | id_bidang
------------+------------------------+-------------+-----------
          1 | Firdan Ardiansyah      | 35000000.00 |         1
          2 | Arsyanendra Ardiansyah |  5000000.00 |         2
          3 | Nur Arsy Ardiansyah    |   450000.00 |         3
          4 | Ratna Dwi Sartika      |  8000000.00 |         4
          5 | Muhammad Bilal         | 10000000.00 |         1

Oke kita sudah berhasil menambahkan pegawai bari pada bidang IT, sekarang kita coba mencari nilai rata-rata gaji pada masing-masing bidang dengan menggunakan perintah AVG, contoh perintahnya seperti dibawah ini :

SELECT b.nama_bidang, AVG(gaji) AS gaji_rata_rata FROM pegawai p
JOIN bidang b ON b.id_bidang = p.id_bidang GROUP by b.nama_bidang;

Maka hasil nilai rata-rata gaji di setiap bidangnya bisa kita lihat seperti dibawah ini :

nama_bidang |    gaji_rata_rata
-------------+-----------------------
 HRD         |  5000000.00
 Keuangan    |  8000000.00
 Pemasaran   |   450000.00
 IT          | 22500000.00

Yup jadi seperti itulah bagaimana cara untuk melakukan join table di PostgreSQL 18 dan juga bagaimana cara untuk melakukan agregasi dan mencari nilai rata-rata pada suatu field atau kolom di tabel tertentu.

Oke sampai sini pembahasan kita mengenai Join table pada database PostgreSQL sudah selesai, jangan lupa untuk selalu berkunjung ke lebakcyber.net untuk mendapatkan tutorial belajar PostgreSQL 18 lainnya. Sampai jumpa lagi.

 

About Firdan Ardiansyah

Admin di lebakcyber.net Untuk berhubungan dengan saya, silahkan kirim email ke : [email protected]

Leave a Reply

Your email address will not be published. Required fields are marked *