Mengurutkan Berdasarkan Beberapa Kolom
Atasi nilai yang sama dengan kunci pengurutan sekunder.
Mengurutkan Berdasarkan Beberapa Kolom adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Masalah Nilai yang Sama
Saat Anda mengurutkan berdasarkan satu kolom, baris dengan nilai yang sama tidak memiliki urutan tertentu di antara baris-baris tersebut. Tiga produk yang semuanya berharga 20 dapat dikembalikan dalam urutan apa pun.
Untuk membuat urutannya sepenuhnya dapat diprediksi, tambahkan kunci pengurutan kedua.
-- Ties on price are ordered arbitrarily
SELECT name, price
FROM products
ORDER BY price;Mencantumkan Beberapa Kunci Pengurutan
ORDER BY menerima daftar kolom yang dipisahkan koma. Basis data mengurutkan berdasarkan kolom pertama, lalu memecahkan nilai yang sama dengan kolom kedua, dan seterusnya.
Di sini, produk diurutkan berdasarkan harga; nilai yang sama diurutkan menurut abjad berdasarkan nama.
SELECT name, price
FROM products
ORDER BY price, name;Urutan Kunci Itu Penting
Urutan kolom mengubah hasil. ORDER BY price, name tidak sama dengan ORDER BY name, price.
Kunci pertama adalah pengurutan utama; kunci berikutnya hanya berpengaruh saat kunci sebelumnya memiliki nilai yang sama.
-- Primary sort by category, then by name within each category
SELECT category, name
FROM products
ORDER BY category, name;Arah per Kolom
Setiap kunci pengurutan dapat memiliki arahnya sendiri. Campurkan ASC dan DESC dengan bebas.
Ini mengelompokkan berdasarkan kategori menurut abjad, tetapi di dalam setiap kategori menampilkan barang termahal terlebih dahulu.
SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC;DESC Berlaku per Kolom
Kesalahan umum: mengira DESC di bagian akhir membalik semuanya. Kata tersebut hanya memengaruhi kolom yang langsung mengikutinya.
Dalam ORDER BY category, price DESC, category tetap menaik; hanya price yang menurun.
-- category: ASC, price: DESC
SELECT category, price
FROM products
ORDER BY category, price DESC;Tiga Kunci atau Lebih
Anda dapat merangkai sebanyak mungkin kunci pengurutan yang diperlukan. Setiap kunci hanya mulai digunakan ketika semua kunci sebelumnya memiliki nilai yang sama.
Urutkan pesanan berdasarkan tanggal, lalu pelanggan, kemudian total dalam pelanggan dan tanggal yang sama.
SELECT created_at, customer_id, total
FROM orders
ORDER BY created_at DESC, customer_id, total DESC;Pengurutan Stabil dan Deterministik
Untuk mendapatkan hasil yang sepenuhnya deterministik, akhiri kunci pengurutan dengan kolom unik seperti kunci utama. Dengan begitu, tidak akan pernah ada dua baris yang sama.
Ini penting untuk pagination, yang akan Anda pelajari dalam pelajaran berikutnya.
SELECT id, name, price
FROM products
ORDER BY price DESC, id;Mencampur Ekspresi dan Kolom
Kunci pengurutan dapat berupa gabungan kolom biasa dan ekspresi. Setiap kunci berdiri sendiri.
Ini mengurutkan berdasarkan nilai persediaan secara menurun, lalu menurut abjad berdasarkan nama sebagai pemecah nilai yang sama.
SELECT name, price, stock
FROM products
ORDER BY price * stock DESC, name ASC;Mengurutkan Berdasarkan Boolean untuk Mengapungkan Grup
Trik yang praktis: urutkan berdasarkan ekspresi boolean untuk mendorong suatu grup ke bagian atas atau bawah. Di PostgreSQL, false diurutkan sebelum true.
Ini menampilkan barang yang tersedia (stok > 0) terlebih dahulu, lalu barang termurah dalam setiap grup.
SELECT name, stock, price
FROM products
ORDER BY (stock = 0), price;Mengendalikan Penempatan NULL
Secara bawaan di PostgreSQL, NULL diurutkan terakhir dalam urutan menaik dan pertama dalam urutan menurun. Ganti perilaku ini dengan NULLS FIRST atau NULLS LAST pada kunci mana pun.
SELECT name, discount
FROM products
ORDER BY discount DESC NULLS LAST;Menggabungkan Semuanya
Pengurutan berdasarkan beberapa kunci yang realistis dapat menggabungkan arah, ekspresi, dan penanganan NULL. Bacalah dari kiri ke kanan: setiap kunci menyempurnakan kunci sebelumnya.
SELECT category, name, price, rating
FROM products
ORDER BY category ASC,
rating DESC NULLS LAST,
price ASC;Pemeriksaan Singkat
Perhatikan ORDER BY category, price DESC.
Ringkasan
Pengurutan berdasarkan beberapa kolom secara ringkas:
- Daftarkan kunci pengurutan dengan pemisah koma; kunci yang lebih awal lebih diutamakan
- Setiap kunci memiliki
ASC/DESCsendiri - Akhiri dengan kolom unik untuk mendapatkan urutan deterministik
- Kendalikan nilai yang hilang dengan
NULLS FIRST/NULLS LAST
Selanjutnya, Anda akan membatasi jumlah baris yang dikembalikan dengan LIMIT dan OFFSET.
SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC, id;Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengurutkan Berdasarkan Beberapa Kolom” gratis?
Ya — teks lengkap “Mengurutkan Berdasarkan Beberapa Kolom” 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 “Mengurutkan Berdasarkan Beberapa Kolom”?
Atasi nilai yang sama dengan kunci pengurutan sekunder. 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 2 dari 4.
Berapa lama pelajaran “Mengurutkan Berdasarkan Beberapa Kolom” 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
- Mengurutkan dengan ORDER BY
- Mengurutkan Berdasarkan Beberapa Kolom
- LIMIT dan OFFSET
- Menemukan Rekaman Teratas-N