0Pricing
SQL Academy · Pelajaran

Subkueri Skalar, Baris, dan Tabel

Gunakan subkueri yang mengembalikan satu nilai, satu baris, atau seluruh tabel, dan tempatkan di klausa SELECT, FROM, dan WHERE.

Subkueri Skalar, Baris, dan Tabel adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Apa Itu Subkueri?

Subkueri adalah SELECT di dalam pernyataan SQL lainnya. Subkueri dapat berupa:

  • Subkueri skalar — mengembalikan satu nilai
  • Subkueri baris — mengembalikan satu baris
  • Subkueri tabel — mengembalikan sebuah relasi (digunakan dalam FROM)

Subkueri Skalar

Digunakan di mana pun satu nilai diharapkan:

SELECT id, total,
       total - (SELECT AVG(total) FROM orders) AS diff_from_avg
FROM orders
WHERE created_at >= NOW() - INTERVAL '30 days';

Subkueri Baris

Mengembalikan satu baris dengan beberapa kolom. Lebih jarang digunakan, biasanya bersama konstruktor baris:

SELECT *
FROM orders
WHERE (status, country) = (
  SELECT status, country FROM orders WHERE id = 1
);

Subkueri Tabel dalam FROM

Perlakukan hasil kueri seperti tabel sementara:

SELECT country, AVG(big_order_total) AS avg_big
FROM (
  SELECT country, total AS big_order_total
  FROM orders
  WHERE total > 1000
) AS sub
GROUP BY country;

Memberi Alias pada Subkueri FROM

Setiap subkueri FROM memerlukan alias di PostgreSQL — meskipun Anda tidak menggunakannya:

SELECT * FROM (SELECT 1) sub;     -- "sub" required

Subkueri dalam WHERE

Filter berdasarkan sekumpulan nilai turunan:

SELECT * FROM users
WHERE id IN (
  SELECT user_id FROM orders WHERE total > 100
);

EXISTS / NOT EXISTS

Uji apakah sebuah subkueri mengembalikan setidaknya satu baris:

SELECT * FROM users u
WHERE EXISTS (
  SELECT 1 FROM orders o WHERE o.user_id = u.id
);

Subkueri dalam SELECT

Sisipkan subkueri skalar untuk setiap baris:

SELECT id, full_name,
  (SELECT COUNT(*) FROM orders o WHERE o.user_id = u.id) AS order_count
FROM users u;

-- Often readable, but a LEFT JOIN + GROUP BY is usually faster.

Subkueri sebagai Ekspresi

Subkueri skalar yang mengembalikan lebih dari satu baris merupakan kesalahan:

SELECT (SELECT email FROM users);
-- ERROR: more than one row returned by a subquery used as an expression

Kapan Mengubahnya Menjadi JOIN

Banyak bentuk "x IN (SELECT...)" dapat ditulis ulang sebagai JOIN. Pilih bentuk yang lebih jelas dibaca; perencana modern sering menghasilkan rencana yang sama.

Subkueri vs CTE

Jika Anda memerlukan subkueri yang sama dua kali, beri nama menggunakan CTE — hal ini dibahas dalam pelajaran berikutnya.

Ringkasan

Subkueri memiliki tiga bentuk.

  • Skalar dalam SELECT/WHERE
  • Baris dalam pengujian kesetaraan
  • Tabel dalam FROM
  • EXISTS untuk pengujian "kecocokan apa pun"

Pemeriksaan Cepat

Bentuk subkueri apa yang digunakan di dalam klausa FROM sebagai tabel sementara?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Subkueri Skalar, Baris, dan Tabel” gratis?

Ya — teks lengkap “Subkueri Skalar, Baris, dan Tabel” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Subkueri Skalar, Baris, dan Tabel”?

Gunakan subkueri yang mengembalikan satu nilai, satu baris, atau seluruh tabel, dan tempatkan di klausa SELECT, FROM, dan WHERE. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Subkueri Skalar, Baris, dan Tabel” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Subkueri Skalar, Baris, dan Tabel
  2. Subkueri Berkorelasi vs Tidak Berkorelasi
  3. Ekspresi Tabel Umum (WITH)
  4. CTE RECURSIVE untuk Hierarki
← Kembali ke SQL Academy