Thursday 11 February 2016

Interview Test Sql

Hi Guys, Balik lagi nih saya mau share pengalaman saya terkait Test skill ketika interview di salah satu perusahaan . kebayangkan ketika baru datang kita dihadirkan soal untuk mengerjakan sql query. Tp jangan khawatir berikut contoh soal nya 

1.            Dengan sql, bagaimana cara menampilkan kolom nama dari table siswa ?
Select nama from siswa;
2.            Dengan sql, bagaimana cara menampilkan semua kolom dari table siswa diurutkan berdasar nama ?
Select * from siswa order by nama asc;
3.            Dengan sql, bagaimana cara menampilkan semua kolom dari table siswa dengan nama ANDI ?
Select * from siswa where nama like ‘ANDI%’;
4.            Dengan sql, bagaimana cara menampilkan semua kolom dari table siswa dengan nama yang diawali huruf B ?
Select * from siswa where nama like ‘B%’;
5.            Dengan sql, bagaimana cara menampilkan semua kolom dari table siswa dengan nama yang diawali huruf B dan C ?
Select * from siswa where nama like ‘B%’ and nama like ‘C%’;
6.            Table A (nomor int) berisi data numeric acak dan banyak
a.            Tuliskan query yang menampilkan nomor paling besar
Select MAX(Column_name) from A;
                      b.    Tuliskan query yang menampilkan nomor paling kecil
                                Select MIN (Column_Name) from A;
                       c.      Tuliskan query yang menampilkan nomor kedua terbesar
                                Select MIN  from A where nomor in (select distinct top 2 from A order by nomor desc)
a.            Tuliskan query yang menampilkan nomor kedua terkecil
Select * from A where nomor in (select distinct top 2 from A order by nomor Asc)

7.            Table A (vote varchar(20)) berisi data pemilihan ketua kelas 6 dari 3 calon ANDI,BUDI,DONI
Siswa kelas 6 akan memilih 3 nama tsb dan setiap pilihan akan dimasukkan ke table A.
Ketua kelas adalah yang terbanyak dipilih.
Wakil ketua kelas adalah yang kedua terbanyak.
a.  Tuliskan query untuk menampilkan siapa yang terpilih menjadi ketua kelas
select top 1 vote, count(*) Total from A group by vote order by Total desc

c.             Tuliskan query untuk menampilkan siapa yang terpilih menjadi wakil ketua kelas
select top 2 vote, count(*) Total from A group by vote order by Total desc

8. Table P(nama varchar(100), alamat varchar(100), email varchar(100), kodekelamin char(1))
Table P berisi data siswa.

Table K(kodekelamin char(1), remark varchar(30))
Table K berisi sbb :
L              Laki- laki
P             Perempuan
X             Tidak terdefinisi

A. Tuliskan query untuk menampilkan banyaknya siswa per jenis kelamin yang terdefinisi di table K. result akan berisi kodekelamin,remark,jumlah
Select a.kodekelamin,b.remark,count(a.kodekelamin) as jumlah from  p  a inner join k  b on a.kodekelamin=b.kodekelamin group by a.kodekelamin,b.remark

b. Tuliskan query untuk menampilkan siswa dengan kodekelamin yang tidak terdefinisi di table K.
Select a.nama,a.kodekelamin,b.remark,count(a.kodekelamin) as jumlah from  p   a inner join k  b on a.kodekelamin=b.kodekelamin where b.kodekelamin =’X’ group by a.nama,a.kodekelamin,b.remark
d.            Tuliskan query untuk menampilkan siswa dengan kodekelamin yang terdefinisi di table K.
Select a.nama,a.kodekelamin,b.remark,count(a.kodekelamin) as jumlah from  p  a inner join k  b on a.kodekelamin=b.kodekelamin where b.kodekelamin =’L’ and ‘P’ group by a.nama,a.kodekelamin,b.remark

9. Table source (id int, accno varchar(50), duedate date, plafond int, customer_name varchar(100),bicoll int,ccy varchar(5),parent_id int)
Table result (id int, accno varchar(50), duedate date, plafond int, customer_name varchar(100),bicoll int,ccy varchar(5), jumlah int)
a. Tulis kan sql untuk mengisi table result dengan ketentuan sbb :
 i.Untuk plafond < 1000 digroup per ccy dengan accno=’GRUP1’, duedate=null,plafond=SUM(plafond), customer_name=’GRUP1’, bicoll=NULL,
insert into result values(select id, accno, duedate, plafon, customer_name, bicoll, ccy, count(*) from source where plafon < 1000 and accno='GRUP1' and duedate=null and plafon = sum(plafon) and customer_name='GRUP1' and bicoll = null group by ccy, id, accno, duedate, plafon, customer_name, bicoll);

2 comments: