Soal nyata sering butuh teknik yang melampaui dasar. Section ini mengoleksi pola query tingkat lanjut — dari lateral derived table sampai gap-and-island — dan membaca kapan tiap pola menjadi solusi paling sederhana.

# Common Table Expressions Lanjutan

Teknik CTE tingkat lanjut di MySQL: CTE bersarang yang membaca CTE lain, daftar kolom eksplisit WITH x (a, b), satu CTE dipakai dua kali lewat self-join, kombinasi CTE dengan window function, penempatan WITH pada statement UPDATE dan DELETE, bentuk yang benar untuk INSERT, error kolom ambigu, dan pengingat batasan umur satu statement.

Buka →
# Window Functions Lanjutan

Fungsi jendela tingkat lanjut di MySQL: NTILE untuk membagi baris ke dalam bucket, FIRST_VALUE dan LAST_VALUE beserta jebakan frame default yang membuat LAST_VALUE tampak salah, NTH_VALUE, distribusi CUME_DIST dan PERCENT_RANK, window function di atas hasil agregasi, dua spesifikasi PARTITION berbeda dalam satu query, serta realita MySQL yang tidak memiliki klausa FILTER dan alternatifnya dengan CASE WHEN.

Buka →
# Recursive Queries

Penggunaan WITH RECURSIVE di luar dasarnya: penelusuran hierarki dengan penghitung kedalaman, agregasi jalur parent-child menjadi string path, pembangkitan rentang tanggal bulanan beserta jebakan akhir bulan, deret Fibonacci dengan dua kolom bergeser, penelusuran pohon dari daun naik ke akar, batas cte_max_recursion_depth, dan perbandingan rekursi di sisi SQL dengan rekursi di sisi aplikasi.

Buka →
# Derived Tables

Pembedahlian derived table di MySQL: aturan alias wajib pada subquery klausa FROM, alasan kolom terhitung bisa disaring di WHERE luar padahal tidak bisa di query datar, derived table bersarang untuk filter agregat bertingkat, bukti error derived table yang mencoba berkorelasi dengan tabel tetangga, perbandingan menyeluruh dengan CTE, materialisasi yang terlihat lewat EXPLAIN select_type DERIVED, dan pola inline view yang di-join dengan tabel dimensi.

Buka →
# Lateral Derived Tables

Kata kunci LATERAL pada MySQL 8.0.14 ke atas: izin bagi derived table untuk merujuk kolom tabel di sebelah kirinya, pembedahan penuh pola top-N per grup dengan CROSS JOIN LATERAL dan LIMIT, perbandingan menyeluruh dengan pendekatan window ROW_NUMBER dari sisi keterbacaan dan performa, agregat per baris induk, tiga bentuk penulisan join LATERAL, dan batasan sintaks yang dibuktikan dengan error nyata.

Buka →
# Upsert Patterns

Pola upsert lanjutan di MySQL: INSERT ON DUPLICATE KEY UPDATE multi-baris dengan alias baris dan referensi kolom terkualifikasi, ekspresi delta stok untuk penambahan stok, INSERT SELECT ON DUPLICATE KEY UPDATE untuk merge tabel sumber, idempotensi skrip migrasi dengan nilai absolut, INSERT IGNORE beserta batas keamanannya, bahaya REPLACE yang menghapus lalu menyisipkan ulang, pola cek-atau-insert yang tahan balapan antar-proses, dan makna angka affected rows 1, 2, dan 0.

Buka →
# Gap and Island Problems

Selesaikan masalah klasik kelompok berurut (gaps and islands): identifikasi pulau nilai berdekatan dan celahnya memakai window function ROW_NUMBER dan LAG, dibedah tahap demi tahap dengan CTE antara.

Buka →
# Analytical Queries

Rangkai CTE, window function, dan join menjadi query analitis utuh: perbandingan tahunan, kontribusi kumulatif, klasifikasi top-N plus kategori lainnya, serta analisis kohort sederhana dengan output bertahap.

Buka →