Cara Memilih N Baris Teratas di MySQL
Memilih N baris teratas dari sebuah tabel adalah tugas dasar saat bekerja dengan database. Dalam tutorial ini, kita akan melihat cara melakukannya di MySQL lewat contoh-contoh praktis.
Sebelum Anda lanjut membaca, saya ingin memperkenalkan client MySQL modern kami, Beekeeper Studio. Buka sebuah tabel dan Beekeeper Studio akan menampilkan baris-barisnya per halaman untuk Anda, atau klik kanan tabel lalu pilih SQL: Select Top untuk mendapatkan query-nya. Gratis untuk MySQL, unduh di sini.
Menggunakan Klausa LIMIT
Klausa LIMIT di MySQL adalah cara sederhana untuk menentukan jumlah baris yang dikembalikan dari hasil query.
Contoh: Memilih 5 Baris Teratas
Misalkan Anda memiliki tabel bernama employees dengan skema berikut:
CREATE TABLE employees (
id INT,
name VARCHAR(100),
salary DECIMAL(10, 2)
);
Anda ingin memilih 5 karyawan teratas berdasarkan gaji, diurutkan dari yang tertinggi.
SELECT id, name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5;
Mengapa Ini Berhasil:
-
ORDER BY salary DESCmengurutkan baris dari gaji tertinggi ke terendah. -
LIMIT 5membatasi output hanya pada 5 baris pertama setelah diurutkan.
Output yang Diharapkan:
+----+----------+--------+
| id | name | salary |
+----+----------+--------+
| 3 | Alice | 90000 |
| 5 | Bob | 85000 |
| 2 | Charlie | 75000 |
| 6 | Diana | 70000 |
| 4 | Edward | 68000 |
+----+----------+--------+
Menangani Nilai Seri dengan LIMIT
Saat ada nilai yang seri, menggunakan LIMIT saja mungkin tidak memberikan hasil yang konsisten tanpa penanganan tambahan. Gunakan ORDER BY dengan lebih banyak kolom untuk memecah nilai seri.
Contoh: Menangani Nilai Seri dengan Pengurutan Sekunder
Untuk menangani gaji yang sama, urutkan berdasarkan id karyawan sebagai kriteria pengurutan sekunder:
SELECT id, name, salary
FROM employees
ORDER BY salary DESC, id ASC
LIMIT 5;
Mengapa Ini Berhasil:
- Menambahkan
id ASCmemastikan bahwa saat gaji sama, karyawan denganidlebih kecil selalu dipilih secara konsisten.
Menggunakan LIMIT untuk Paginasi
Selain memilih N baris teratas, kita sering perlu melakukan paginasi hasil dengan memilih rentang baris tertentu.
Contoh: Memilih 5 Baris Berikutnya
Untuk paginasi hasil dan memilih baris 6-10 berdasarkan gaji:
SELECT id, name, salary
FROM employees
ORDER BY salary DESC
LIMIT 5 OFFSET 5;
Mengapa Ini Berhasil:
-
LIMIT 5menentukan jumlah baris yang dikembalikan. -
OFFSET 5melewati 5 baris pertama.
Output yang Diharapkan:
5 karyawan berikutnya setelah 5 teratas:
+----+---------+--------+
| id | name | salary |
+----+---------+--------+
| 1 | Frank | 67000 |
| 7 | Grace | 64000 |
| 8 | Hannah | 60000 |
| 9 | Ivan | 59000 |
| 10 | Jane | 58000 |
+----+---------+--------+
Kesimpulan
Memilih N baris teratas di MySQL dengan klausa LIMIT itu efisien dan mudah. Jika ada kemungkinan nilai seri, pastikan urutan yang stabil dengan menambahkan kolom lain di ORDER BY. Teknik sederhana ini penting untuk banyak aplikasi, termasuk analitik dan pelaporan, terutama saat menangani dataset besar.
Dengan menguasai teknik-teknik ini, Anda akan memiliki kendali lebih besar atas pengambilan dan manipulasi data di MySQL.
Beekeeper Studio Adalah GUI MySQL Gratis & Open Source
Belakangan ini saya memakai Beekeeper Studio untuk pekerjaan MySQL saya, dan aplikasi ini dengan cepat menjadi salah satu tool database favorit saya. Antarmukanya bersih, modern, dan bebas gangguan, sehingga mudah fokus pada query tanpa kesemrawutan seperti di beberapa tool lain. - Surendra Singh
Beekeeper Studio adalah client MySQL yang cepat, intuitif, dan mudah digunakan. Aplikasi ini juga mendukung banyak database lain, dan berjalan mulus di Windows, Mac, dan Linux.
Apa Kata Pengguna MySQL tentang Beekeeper Studio
Saya memilih program ini setelah bertahun-tahun memakai phpMyAdmin—rasanya seperti melangkah ke dunia dengan kualitas yang lebih tinggi; di sini saya benar-benar merasa bahwa pengguna sungguh diperhatikan. Konsepnya, implementasinya, pengalaman praktisnya—saya sungguh berterima kasih kepada Matthew untuk semua itu.
Tool yang luar biasa, IDE paling praktis yang pernah saya temukan sejauh ini untuk administrasi database Postgres dan MySql - langsung jalan, tanpa ribet :-)