SOAL
Buatlah queri Nama siswa mana pun di SISWA yang mendapat nilai lebih tinggi dari 75. Urutan output dengan tiga karakter terakhir dari setiap nama. Jika dua siswa atau lebih memiliki nama yang diakhiri dengan tiga karakter terakhir yang sama (yaitu: Bobby, Robby, dll.), urutkan kedua berdasarkan ID menaik.
Ilustrasi oleh Javier Trueba - Unsplash. |
STRUKTUR TABEL
Struktur Tabel STUDENTS. |
Dalam tabel STUDENTS terdapat kolom ID sebagai primary key bertype integer, NAME sebagai nama siswa dengan type varchar dan MARKS sebagai nilai siswa dengan type integer.
CREATE TABLE `STUDENTS` (
`ID` int PRIMARY KEY AUTO_INCREMENT,
`NAME` varchar(255),
`MARKS` integer
);
Isi tabel STUDENTS dengan beberapa data untuk melakukan testing query.
INSERT INTO STUDENTS(NAME, MARKS) VALUES ('ROFI', 76), ('YUDISTIRA', 78), ('AGNES', 70), ('KURNIAWAN', 49), ('ALFIAH', 72), ('AMANDA', 87)
CONTOH
misal tabel STUDENT memiliki data seperti gambar dibawah ini
Contoh Tabel STUDENTS. |
maka output adalah
Ashley
Julia
Belvet
Penjelasan
Hanya Ashley, Julia, dan Belvet yang memiliki Tanda > . Jika Anda melihat tiga karakter terakhir dari masing-masing nama mereka, tidak ada duplikat dan 'ley' < 'lia' < 'vet'.
QUERY
select name from (select id, name, marks, SUBSTRING(name, -3) as lastname from STUDENTS where marks > 75) as tabel order by lastname, id asc;
PEMBAHASAN
1. Pertama untuk mengambil tiga karakter terakhir dari nama siswa menggunakan fungsi SUBSTRING(). Contoh penggunaan ada pada
select id, name, marks, SUBSTRING(name, -3) as lastname from STUDENTS
dalam query diatas mengambil tiga karakter terakhir dari kolom nama sebagai kolom lastname.
2. Untuk mengambil data yang memiliki nilai lebih tinggi dari 75 menggunakan
where marks > 75
Maka data yang ditampilkan hanya data yang memiliki nilai diatas 75.
3. Untuk mengurutkan data berdasarkan tiga huruf terakhir dan id maka menggunakan
order by lastname, id asc
maka data akan diurutkan secara ascending berdasarkan lastname dan id.
HASIL
Hasil Queri. |
Dari queri yang dijalankan, siswa yang memiliki nilai diatas 75 dan diurutkan berdasarkan 3 huruf terakhirnya adalah YUDISTIRA, AMANDA, dan ROFI.
Tidak ada komentar: