0Pricing
SQL Academy · Pelajaran

Dasar-Dasar SELECT DISTINCT

Kembalikan hanya baris unik.

Dasar-Dasar SELECT DISTINCT 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.

Mengapa Duplikat Terjadi

Tabel sering berisi nilai yang berulang. Tabel customers, misalnya, mungkin mencantumkan kota city yang sama di ribuan baris. Saat Anda hanya memerlukan himpunan nilai unik, SELECT biasa mengembalikan setiap baris, termasuk pengulangan.

SELECT DISTINCT menggabungkan baris yang identik menjadi satu. Dalam pelajaran ini Anda akan mempelajari dasar-dasar cara mengembalikan hasil yang hanya berisi nilai unik.

SELECT city FROM customers;
-- Returns one row per customer, with many repeated cities

Kata Kunci DISTINCT

DISTINCT ditempatkan tepat setelah SELECT. Kata ini menghapus baris duplikat dari himpunan hasil dan menyisakan satu salinan dari setiap kombinasi unik kolom yang dipilih.

SELECT DISTINCT city
FROM customers;
-- One row per unique city

DISTINCT Berlaku untuk Seluruh Baris

Kesalahpahaman yang umum adalah bahwa DISTINCT hanya berlaku untuk satu kolom. Sebenarnya, kata ini berlaku untuk seluruh baris yang dipilih. Setiap kolom yang Anda cantumkan ikut menentukan apakah dua baris merupakan duplikat.

Di bawah ini, baris dideduplikasi hanya berdasarkan nilai city, karena hanya kolom tersebut yang dipilih.

SELECT DISTINCT country
FROM customers;
-- Unique countries across all customers

Data Contoh

Bayangkan tabel orders kecil. Perhatikan nilai status dan country yang berulang. Kita akan menggunakan struktur ini sepanjang pelajaran.

  • id=1, status='paid', country='US'
  • id=2, status='paid', country='US'
  • id=3, status='shipped', country='DE'
  • id=4, status='paid', country='DE'
CREATE TABLE orders (
  id         int PRIMARY KEY,
  status     text,
  country    text,
  amount     numeric(10,2)
);

DISTINCT pada Satu Kolom

Memilih DISTINCT status dari data contoh mengembalikan nilai status yang unik: paid dan shipped. Keempat baris diringkas menjadi dua.

SELECT DISTINCT status
FROM orders;
-- paid
-- shipped

NULL Dianggap sebagai Satu Nilai

Meskipun NULL biasanya tidak sama dengan apa pun (bahkan tidak sama dengan dirinya sendiri), DISTINCT memperlakukan semua NULL sebagai satu kelompok. Jika sebuah kolom memiliki banyak baris NULL, hasil DISTINCT akan berisi tepat satu NULL.

SELECT DISTINCT shipped_at
FROM orders;
-- All NULL shipped_at rows collapse into a single NULL row

DISTINCT dengan ORDER BY

Biasanya Anda ingin nilai unik tersebut diurutkan. DISTINCT dijalankan terlebih dahulu untuk membentuk himpunan unik, kemudian ORDER BY mengurutkannya. Setiap kolom dalam ORDER BY juga harus muncul dalam daftar SELECT saat menggunakan DISTINCT.

SELECT DISTINCT country
FROM orders
ORDER BY country;
-- DE
-- US

DISTINCT Dibandingkan dengan GROUP BY

SELECT DISTINCT col dan SELECT col GROUP BY col menghasilkan baris unik yang sama. Gunakan DISTINCT jika Anda hanya menginginkan nilai unik; gunakan GROUP BY jika Anda juga memerlukan agregat seperti COUNT untuk setiap kelompok.

-- These two return the same set of countries:
SELECT DISTINCT country FROM orders;

SELECT country FROM orders
GROUP BY country;

DISTINCT Memerlukan Biaya

Menghapus duplikat tidaklah gratis. Basis data harus mengurutkan atau melakukan hashing pada semua baris kandidat untuk menemukan baris yang unik. Pada tabel besar, hal ini menambah beban kerja CPU dan memori, jadi gunakan DISTINCT hanya jika Anda benar-benar memerlukan keunikan.

-- Avoid blind DISTINCT on every query.
-- If the column is already unique (e.g. a PRIMARY KEY),
-- DISTINCT does nothing useful but still costs work:
SELECT DISTINCT id FROM orders;  -- id is already unique

DISTINCT dalam Ekspresi

Anda dapat menerapkan DISTINCT pada ekspresi hasil perhitungan, bukan hanya pada kolom mentah. Basis data mengevaluasi ekspresi tersebut untuk setiap baris, lalu menghapus hasil yang duplikat.

SELECT DISTINCT upper(country) AS country_code
FROM orders
ORDER BY country_code;
-- DE
-- US

Membuat Daftar Pencarian

Salah satu penggunaan praktis DISTINCT adalah mengisi menu tarik-turun atau daftar filter dalam aplikasi: ambil status yang unik untuk menampilkan kepada pengguna setiap opsi yang saat ini tersedia dalam data.

SELECT DISTINCT status
FROM orders
ORDER BY status;
-- paid
-- shipped

Pemeriksaan Singkat

Di mana kata kunci DISTINCT ditempatkan, dan apa yang dideduplikasi?

Ringkasan

Anda telah mempelajari dasar-dasar SELECT DISTINCT:

  • Fungsi ini menghapus baris duplikat dari himpunan hasil.
  • Fungsi ini berlaku untuk seluruh baris yang dipilih, bukan hanya satu kolom.
  • Semua NULL digabungkan menjadi satu nilai.
  • ORDER BY dijalankan setelah deduplikasi; kolomnya harus dipilih.
  • Fungsi ini memerlukan pekerjaan tambahan, jadi gunakan hanya jika diperlukan.

Selanjutnya: menerapkan DISTINCT pada beberapa kolom.

SELECT DISTINCT status
FROM orders
ORDER BY status;

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar SELECT DISTINCT” gratis?

Ya — teks lengkap “Dasar-Dasar SELECT DISTINCT” 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 “Dasar-Dasar SELECT DISTINCT”?

Kembalikan hanya baris unik. 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 “Dasar-Dasar SELECT DISTINCT” 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. Dasar-Dasar SELECT DISTINCT
  2. DISTINCT pada Beberapa Kolom
  3. DISTINCT ON PostgreSQL
  4. Menghitung Nilai Unik
← Kembali ke SQL Academy