Mengambil Data · Pelajaran 4 dari 9
Mengurutkan dan membatasi hasil
8 menit baca · BelajarCode
1CREATE TABLE nilai (2 nama TEXT,3 kelas TEXT,4 skor INTEGER5);67INSERT INTO nilai VALUES8 ('Andi', 'XI-1', 78), ('Bela', 'XI-2', 92), ('Citra', 'XI-1', 85),9 ('Dimas', 'XI-2', 78), ('Eka', 'XI-1', 95), ('Fajar', 'XI-2', 64);1011SELECT nama, skor FROM nilai ORDER BY skor DESC;nama | skor Eka | 95 Bela | 92 Citra | 85 Andi | 78 Dimas | 78 Fajar | 64
ORDER BY kolom DESC mengurutkan dari besar ke kecil, dan ASC (bawaan) dari kecil ke besar.
Beberapa kunci pengurutan
1SELECT kelas, nama, skor FROM nilai ORDER BY kelas ASC, skor DESC;kelas | nama | skor XI-1 | Eka | 95 XI-1 | Citra | 85 XI-1 | Andi | 78 XI-2 | Bela | 92 XI-2 | Dimas | 78 XI-2 | Fajar | 64
Data diurutkan menurut kelas lebih dulu, lalu di dalam setiap kelas menurut skor dari besar ke kecil.
LIMIT dan OFFSET
LIMIT membatasi banyak baris. Bersama OFFSET, LIMIT dipakai untuk paginasi, misalnya menampilkan data per halaman.
1SELECT nama, skor FROM nilai ORDER BY skor DESC LIMIT 3;nama | skor Eka | 95 Bela | 92 Citra | 85
1SELECT nama, skor FROM nilai ORDER BY skor DESC, nama LIMIT 2 OFFSET 2;nama | skor Citra | 85 Andi | 78
OFFSET 2 melewati dua baris pertama. Halaman ke-k dengan p baris per halaman memakai LIMIT p OFFSET (k - 1) * p.
DISTINCT
1SELECT DISTINCT kelas FROM nilai ORDER BY kelas;kelas XI-1 XI-2
Urutan tanpa ORDER BY tidak dijamin
Tanpa ORDER BY, DBMS boleh mengembalikan baris dalam urutan apa pun. Jangan mengandalkan urutan "sesuai waktu dimasukkan". Jika urutan penting, tulis ORDER BY secara eksplisit.
Cek pemahaman
Untuk menampilkan halaman ketiga dengan 10 data per halaman, klausa mana yang tepat?
Latihan
Skor terendah per kelas
Tampilkan dua siswa dengan skor terendah dari kelas XI-2, dari yang paling rendah.
Pembahasan
1SELECT nama, skor FROM nilai2WHERE kelas = 'XI-2'3ORDER BY skor ASC4LIMIT 2;nama | skor Fajar | 64 Dimas | 78