SQL Union Operator: Fungsi, Kelebihan dan Cara Menggunakan

sql union

Dalam dunia pengolahan data, sering kali kita dihadapkan pada situasi di mana data yang kita butuhkan tersebar di beberapa tabel atau hasil query berbeda. Nah, di sinilah SQL UNION operator berperan penting. Operator ini memungkinkan kita untuk menggabungkan hasil dari dua atau lebih query menjadi satu kumpulan hasil tunggal.

Pada artikel ini kita akan belajar secara rinci hingga mengerti dengan operator ini secara fungsional. Yuk simak!

Pengertian SQL UNION Operator

SQL UNION adalah operator yang digunakan untuk menggabungkan hasil dari dua atau lebih perintah SELECT menjadi satu set hasil (result set) tunggal. Operator ini menyatukan data dari beberapa query dengan struktur kolom yang sama, lalu menghapus baris yang duplikat secara otomatis sehingga setiap data yang muncul bersifat unik.

Bayangkan kamu memiliki dua daftar pelanggan dari cabang berbeda, satu dari cabang Jakarta dan satu lagi dari cabang Bandung. Daripada menampilkan dua hasil query terpisah, kamu bisa menggunakan UNION untuk menggabungkan keduanya dalam satu daftar yang rapi.

Dengan kata lain, SQL UNION bukan hanya sekadar alat bantu query, tapi juga sebuah teknik efisien untuk menyatukan data dengan struktur serupa. Operator ini banyak digunakan oleh analis data, developer, maupun data engineer dalam berbagai sistem basis data seperti MySQL, PostgreSQL, SQL Server, hingga Oracle Database.

Fungsi dan Tujuan UNION dalam SQL

Fungsi utama dari UNION adalah menggabungkan baris hasil (rows) dari dua atau lebih SELECT statement. Setiap SELECT bisa berasal dari tabel yang sama atau berbeda, asalkan jumlah dan tipe kolom yang diambil serupa.

Tujuan penggunaan UNION sangat beragam, antara lain:

  • Menggabungkan data dari tabel terpisah, misalnya tabel pelanggan tahun 2024 dan tabel pelanggan tahun 2025.
  • Menyatukan hasil query berbeda untuk laporan gabungan.
  • Membuat view atau data summary dari beberapa sumber informasi.

UNION sangat berguna dalam skenario analisis bisnis di mana data dikumpulkan dari banyak departemen atau periode waktu yang berbeda. Operator ini juga membantu menghindari duplikasi logika query yang sama untuk setiap tabel.

Sintaks Dasar SQL UNION

Sintaks dasar penggunaan SQL UNION operator sangat sederhana. Formatnya adalah sebagai berikut:

SELECT kolom1, kolom2, ...
FROM tabel1
UNION
SELECT kolom1, kolom2, ...
FROM tabel2;

Beberapa hal penting dari sintaks ini:

  1. Jumlah kolom pada kedua query harus sama.
  2. Tipe data pada masing-masing kolom yang digabungkan harus kompatibel (misalnya VARCHAR dengan VARCHAR, INT dengan INT).
  3. Hasil akhirnya akan menghapus baris duplikat secara otomatis, kecuali Anda menggunakan UNION ALL.

Contoh sederhana:

SELECT nama, kota FROM pelanggan_jakarta
UNION
SELECT nama, kota FROM pelanggan_bandung;

Query di atas akan menghasilkan daftar pelanggan gabungan dari dua cabang, tanpa menampilkan baris duplikat.

Perbedaan Antara UNION dan UNION ALL

Perbedaan antara UNION dan UNION ALL sering kali membingungkan bagi pemula, padahal keduanya memiliki fungsi mirip namun hasil berbeda.

AspekUNIONUNION ALL
Duplikasi dataMenghapus baris duplikatMenampilkan semua baris termasuk duplikat
KinerjaLebih lambat (karena perlu memeriksa duplikat)Lebih cepat
Penggunaan umumSaat ingin hasil unikSaat ingin melihat semua data apa adanya

Contoh:

-- Menghapus duplikat
SELECT kota FROM pelanggan_2024
UNION
SELECT kota FROM pelanggan_2025;

-- Menampilkan semua termasuk duplikat
SELECT kota FROM pelanggan_2024
UNION ALL
SELECT kota FROM pelanggan_2025;

Syarat Penggunaan UNION

Agar UNION dapat dijalankan tanpa error, ada beberapa aturan penting yang wajib diperhatikan:

  1. Jumlah kolom harus sama antara semua query dalam UNION.
  2. Urutan kolom harus sesuai, artinya kolom pertama dari query pertama cocok dengan kolom pertama dari query kedua.
  3. Tipe data kolom harus serupa atau kompatibel. Misalnya, kolom teks (VARCHAR) tidak bisa digabung dengan kolom numerik (INT).
  4. Nama kolom hasil akhir akan mengikuti nama kolom dari query pertama.
  5. UNION tidak dapat digunakan langsung untuk menggabungkan tabel dengan struktur yang sangat berbeda tanpa penyesuaian SELECT.

Contoh Kasus Penggunaan UNION

1. Menggabungkan Dua Tabel Pelanggan

Misalnya, Anda memiliki dua tabel:
tabel_pelanggan_online dan tabel_pelanggan_offline.

SELECT nama, email FROM tabel_pelanggan_online
UNION
SELECT nama, email FROM tabel_pelanggan_offline;

Hasilnya akan menjadi daftar seluruh pelanggan dari dua sumber, tanpa duplikat.

2. Menggabungkan Data Berdasarkan Tahun

SELECT id_pelanggan, nama, tahun FROM pelanggan_2024
UNION
SELECT id_pelanggan, nama, tahun FROM pelanggan_2025;

Query ini sangat berguna untuk membuat laporan lintas tahun, misalnya menghitung total pelanggan aktif dari dua periode berbeda.

Cara Kerja SQL UNION di Balik Layar

Ketika kamu menjalankan query dengan UNION, sistem basis data akan:

  1. Mengeksekusi query pertama, lalu menyimpan hasilnya sementara.
  2. Mengeksekusi query kedua (atau lebih).
  3. Menggabungkan semua hasil ke dalam satu dataset.
  4. Jika menggunakan UNION (tanpa ALL), maka sistem akan menjalankan proses deduplikasi — biasanya dengan menggunakan algoritma sort atau hash untuk menghapus baris identik.

Kelebihan Menggunakan UNION

Menggunakan SQL UNION operator memiliki berbagai kelebihan, di antaranya:

  1. Menyatukan data dari berbagai sumber dengan mudah
    UNION memungkinkan kita menggabungkan hasil dari beberapa tabel tanpa harus melakukan proses kompleks seperti JOIN. Cukup pastikan struktur kolom sama, maka data dari berbagai sumber bisa bersatu dengan cepat.
  2. Meningkatkan efisiensi analisis
    Dalam banyak proyek analisis data, sering kali kita butuh data gabungan dari beberapa tabel atau periode waktu. Dengan UNION, kamu bisa langsung membuat dataset agregat untuk kemudian dianalisis atau divisualisasikan.
  3. Mengurangi duplikasi hasil
    UNION otomatis menghapus baris duplikat. Ini membantu menjaga hasil data tetap bersih dan unik tanpa perlu proses tambahan seperti DISTINCT.
  4. Fleksibilitas tinggi
    UNION bisa digunakan untuk menggabungkan query dari tabel berbeda, bahkan dari view atau subquery yang kompleks. Fungsionalitasnya sangat fleksibel untuk berbagai kebutuhan pelaporan.

Kekurangan Menggunakan UNION

Meski bermanfaat, SQL UNION juga memiliki beberapa keterbatasan yang penting untuk dipahami agar penggunaannya tetap optimal:

  1. Performa bisa menurun pada dataset besar
    Karena UNION menghapus duplikat secara otomatis, sistem harus melakukan pengecekan dan penyortiran data tambahan. Jika data yang digabungkan sangat besar, hal ini bisa menurunkan performa query.
  2. Tidak bisa menggabungkan tabel dengan struktur berbeda
    UNION hanya bisa digunakan jika setiap query memiliki jumlah kolom dan tipe data yang sama. Jadi, kamu mungkin perlu menyesuaikan query terlebih dahulu dengan alias atau konversi tipe data.
  3. Nama kolom hasil hanya mengikuti query pertama
    Ini sering membingungkan pengguna baru. Jika kamu ingin nama kolom tertentu muncul di hasil akhir, pastikan Anda menyesuaikannya pada SELECT pertama.
  4. Tidak dapat langsung menampilkan kolom tambahan
    Misalnya, kamu ingin tahu dari tabel mana data berasal, ini tidak bisa dilakukan langsung. Namun, bisa diakali dengan menambahkan kolom tambahan secara manual seperti: SELECT nama, 'online' AS sumber FROM pelanggan_online UNION SELECT nama, 'offline' AS sumber FROM pelanggan_offline;

Tips Optimalisasi Query UNION

Berikut beberapa tips penting untuk meningkatkan performa query UNION agar tetap cepat dan efisien:

  1. Gunakan UNION ALL jika tidak perlu menghapus duplikat
    UNION ALL jauh lebih cepat karena tidak ada proses deduplikasi. Jika data kamu sudah pasti unik, gunakan UNION ALL.
  2. Pastikan indeks pada kolom yang sering digunakan
    Jika kamu menggunakan UNION untuk menggabungkan tabel besar, pastikan kolom yang sering dibandingkan memiliki indeks agar proses pengambilan data lebih cepat.
  3. Hindari SELECT *
    Selalu pilih kolom yang dibutuhkan saja. SELECT * bisa memperlambat performa karena mengambil semua kolom, termasuk yang tidak diperlukan.
  4. Gunakan CTE (Common Table Expression)
    Dalam beberapa kasus, UNION yang kompleks bisa lebih mudah dibaca dan dikelola jika menggunakan CTE: WITH semua_pelanggan AS ( SELECT nama, kota FROM pelanggan_online UNION ALL SELECT nama, kota FROM pelanggan_offline ) SELECT * FROM semua_pelanggan WHERE kota = 'Jakarta';

UNION vs JOIN: Mana yang Lebih Tepat Digunakan?

Banyak orang sering bingung antara UNION dan JOIN, padahal keduanya memiliki fungsi yang berbeda secara mendasar.

AspekUNIONJOIN
TujuanMenggabungkan hasil query secara vertikal (baris demi baris)Menggabungkan data secara horizontal (kolom demi kolom)
SyaratJumlah dan tipe kolom samaHarus ada kolom relasi antar tabel
DuplikasiMenghapus (kecuali UNION ALL)Tidak menghapus duplikasi
Contoh penggunaanMenggabungkan data pelanggan dari dua cabangMenggabungkan data pelanggan dengan transaksi

Contoh UNION:

SELECT nama FROM pelanggan_cabang1
UNION
SELECT nama FROM pelanggan_cabang2;

Contoh JOIN:

SELECT p.nama, t.total_transaksi
FROM pelanggan p
JOIN transaksi t ON p.id_pelanggan = t.id_pelanggan;

Contoh Implementasi Nyata di Dunia Industri

Di dunia nyata, operator UNION banyak digunakan dalam berbagai sektor industri, terutama dalam pelaporan dan integrasi data. Berikut contoh penerapannya:

  • E-commerce: Menggabungkan data transaksi dari berbagai cabang atau platform (misalnya web dan aplikasi mobile).
  • Perbankan: Menggabungkan catatan transaksi dari beberapa tahun untuk laporan tahunan.
  • Kesehatan: Menggabungkan data pasien dari beberapa rumah sakit yang menggunakan sistem database terpisah.
  • Pendidikan: Menggabungkan data siswa dari beberapa angkatan untuk analisis performa akademik.

Contoh implementasi nyata di sistem e-commerce:

SELECT id_pesanan, pelanggan, tanggal, total
FROM pesanan_shopee
UNION ALL
SELECT id_pesanan, pelanggan, tanggal, total
FROM pesanan_tokopedia;

Dengan query seperti ini, manajer bisa melihat seluruh pesanan dari dua platform berbeda dalam satu tampilan laporan penjualan total.

Kesimpulan

Pada pembahasan kita diatas dapat disimpulkan bahwa SQL UNION adalah operator penting dalam pengolahan data karena memungkinkan kita menggabungkan hasil dari beberapa query menjadi satu set data tunggal. Dengan memastikan struktur kolom serupa, UNION dapat menyederhanakan proses integrasi data dari berbagai tabel, periode, atau sistem yang berbeda.

Operator ini juga otomatis menghapus duplikat, sehingga hasil akhir lebih rapi dan bersih tanpa perlu langkah tambahan. Dalam praktiknya, UNION sangat membantu pada proses analisis, pelaporan, hingga pembuatan data summary di berbagai sektor industri.

Meski memberikan banyak manfaat, penggunaan UNION tetap memiliki batasan dan perlu strategi optimalisasi. Performa bisa menurun pada dataset besar karena proses deduplikasi, dan operator ini hanya dapat digunakan untuk query dengan struktur kolom yang sama. Oleh karena itu, memahami kapan harus menggunakan UNION atau UNION ALL, kapan lebih tepat memakai JOIN, serta bagaimana menata query agar lebih efisien adalah kunci memaksimalkan fungsinya.

Artikel ini merupakan bagian seri artikel Database dari KantinIT.com dan jika ada ide topik yang mau kami bahas silahkan komen di bawah ya

Write a Comment

Leave a Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨