Lewati ke konten utama

Advanced Queries MySQL

Kueri lanjutan (Advanced Queries) di MySQL digunakan untuk mengambil, memfilter, dan mengelola data dengan lebih kompleks. Berikut adalah beberapa teknik kueri lanjutan yang sering digunakan:

1. Subquery

Subquery adalah kueri yang berada di dalam kueri lain.

SELECT nama, (SELECT COUNT(*) FROM orders WHERE pelanggan_id = pelanggan.id) AS total_order 
FROM pelanggan;

2. Join Lanjutan

Menggabungkan data dari beberapa tabel dengan kondisi yang lebih kompleks.

SELECT pelanggan.nama, orders.tanggal_pemesanan 
FROM pelanggan
LEFT JOIN orders ON pelanggan.id = orders.pelanggan_id
WHERE orders.tanggal_pemesanan >= '2024-01-01';

3. Union

Menggabungkan hasil dari beberapa kueri menjadi satu hasil.

SELECT nama FROM pelanggan 
UNION
SELECT nama FROM supplier;

4. CTE (Common Table Expressions)

CTE digunakan untuk membuat kueri yang lebih terstruktur dan mudah dibaca.

WITH TotalOrders AS (
SELECT pelanggan_id, COUNT(*) AS jumlah_order
FROM orders
GROUP BY pelanggan_id
)
SELECT pelanggan.nama, TotalOrders.jumlah_order
FROM pelanggan
JOIN TotalOrders ON pelanggan.id = TotalOrders.pelanggan_id;

5. Window Functions

Digunakan untuk melakukan perhitungan agregat tanpa mengelompokkan data.

SELECT nama, pendapatan,
RANK() OVER (ORDER BY pendapatan DESC) AS ranking
FROM karyawan;

Dengan menggunakan kueri lanjutan ini, Anda dapat melakukan analisis data yang lebih efektif di MySQL.