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.