SQL LIMIT Clause

Query SQL LIMIT Clause

SQL LIMIT clause adalah perintah yang terdapat dalam sql untuk memfilter berapa banyak data yang secara spesifik diperlukan untuk diambil.

Adapun konsep sederhana untuk memahami query SQL LIMIT kurang lebih seperti ini.

Ambilkan saya data di kolom tertentu dari tabel berikut, cukup ambil sekian data teratas saja.

Sedangkan jika dituangkan dalam bentuk sintaks, maka query limit di sql kurang lebih seperti berikut.

Sintaks SQL LIMIT

SELECT kolom1, kolom2, ...
FROM nama_tabel
WHERE kondisinya
LIMIT jumlah;

Pada sintaks di atas, kita sudah sangat familiar dengan tiga baris pertama karena sudah cukup sering diulang-ulah di materi-materi sebelumnya, jika kamu belum begitu paham silahkan baca kembali tentang materi belajar sql.

Perbedaannya terletak pada baris keempat yang diawali dengan kata kunci LIMIT diikuti jumlah data records yang hendak diambil. Agar menguatkan pemahaman mari kita lakukan studi kasus pada tabel rank_students berikut.

id name class_rank grade class
1 Jordi 1 9.5 X IPA 1
2 Asnawi 1 9.2 X IPA 2
3 Mark 2 9.3 X IPA 1
4 Rafael 1 9.1 X IPA 3
5 Justin 2 9.0 X IPA 2
6 Sandy 2 8.8 X IPA 3
7 Elkan 1 9.4 X IPA 4

SQL LIMIT WHERE

Dari informasi pada tabel rank_students di atas, tampak bahwa terdapat tujuh siswa dengan rangking 1 dan 2 dari 4 kelas. Misalkan dalam kasus kali ini kita ingin mengambil tiga siswa teratas dengan rangking kelas 1 saja.

SELECT * FROM rank_students
WHERE class_rank = 1
LIMIT 3;

Output:

id name class_rank grade class
1 Jordi 1 9.5 X IPA 1
2 Asnawi 1 9.2 X IPA 2
4 Rafael 1 9.1 X IPA 3

Berdasarkan output dari query sql limit di atas tampak kita sudah berhasil memperoleh tiga data teratas dengan kondisi rangking kelas 1 saja. Padahal jika diperhatikan jumlah siswa yang memperoleh rangking kelas 1 itu ada empat siswa, tapi dengan menerapkan query SQL LIMIT clause kita bisa memfilter tiga teratas saja.

SQL LIMIT ORDER BY

Dari kasus sebelumnya, jika kamu perhatikan dengan jeli ada sedikit kejanggalan, kenapa siswa bernama Elkan yang nilainya relatif lebih tinggi daripada Rafael tidak terambil di hasil query?

Jawabannya, karena kita tidak mempedulikan grade, jika dirunut query select hingga kondisi where di kasus tersebut secara urut akan menghasilkan Jordi, Asnawi, Rafael dan Elkan. Lalu kita melakukan filter mengambil tiga teratas saja tanpa mempedulikan grade.

Nah di kasus ini kita akan coba melakukan query untuk mengambil tiga data siswa teratas berdasarkan grade tertinggi. Maka query SQL LIMIT perlu dikombinasikan dengan query SQL ORDER BY seperti berikut.

SELECT * FROM rank_students
ORDER BY grade DESC
LIMIT 3;

Output:

id name class_rank grade class
1 Jordi 1 9.5 X IPA 1
7 Elkan 1 9.4 X IPA 4
3 Mark 2 9.3 X IPA 1

Tampak bahwa dari query di atas kita berhasil mengambil tiga data siswa teratas berdasarkan urutan nilai tertinggi. Di kasus real, hal ini bisa digunakan untuk menentukan juara umum siswa berdasarkan perolehan nilai tertinggi.

SQL LIMIT WHERE ORDER BY

Terakhir, kita akan coba menggabungkan query SQL LIMIT clause dengan sql WHERE clause dan juga ORDER BY keyword. Pada kasus ini kita akan mengambil tiga data siswa teratas dengan ketentuan rangking kelas nya harus 1 tapi urutkan berdasarkan perolehan grade tertinggi.

SELECT * FROM rank_students
WHERE class_rank = 1
ORDER BY grade DESC
LIMIT 3;

Output:

id name class_rank grade class
1 Jordi 1 9.5 X IPA 1
7 Elkan 1 9.4 X IPA 4
2 Asnawi 1 9.2 X IPA 2
Tomi Nurhidayat

Data Science dan Machine Learning Enthusiast | SEO Enthusiast.

Previous Post Next Post