Menu
CoddyTech

Urutan Angka

Termasuk bagian Lebih dari Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 20 dari 27.

Kamu sudah mengenal kata kunci WITH di Fundamentals untuk memberi nama pada subquery, yang juga dikenal sebagai CTE (Common Table Expression). CTE rekursif melangkah lebih jauh: CTE ini memungkinkan subquery merujuk pada dirinya sendiri, membangun hasil baris demi baris.

Versi paling sederhana menghasilkan urutan angka tanpa tabel yang mendasarinya. Bentuknya selalu sama:

WITH RECURSIVE counter(n) AS (
    SELECT 1                              -- awal: baris pertama
    UNION ALL
    SELECT n + 1 FROM counter WHERE n < 5 -- rekursif: buat baris berikutnya dari baris terakhir
)
SELECT n FROM counter

Bacalah seperti ini: mulai dengan n = 1, lalu terus tambahkan baris dengan setiap n bernilai n + 1 sebelumnya, berhenti ketika WHERE tidak lagi cocok. Hasilnya adalah 1, 2, 3, 4, 5.

Dua bagian body digabungkan dengan UNION ALL. Bagian pertama adalah anchor: baris awal. Bagian kedua adalah langkah rekursif: bagian ini melakukan kueri pada CTE itu sendiri.

challenge icon

Tantangan

Mudah

Tulis CTE rekursif bernama powers dengan dua kolom:

  • i: indeks iterasi, dimulai dari 1
  • p: 2 dipangkatkan dengan i (2, 4, 8, …)

Berhenti setelah p melebihi 1000. Kembalikan kedua kolom, diurutkan berdasarkan i secara menaik.

Coba sendiri

WITH RECURSIVE powers(i, p) AS (
    -- dasar: i=1, p=2
    -- rekursif: i+1, p*2, hingga p mencapai 1000
)
SELECT i, p FROM powers ORDER BY i
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Lebih dari Dasar-Dasar

Latihan sendiri: Playground SQL