Jendela Statistika

Melihat Dunia Dengan Data Sebagai Sebuah Investasi

CONTOH SOAL QUERY SQL KETIKA TEST DATA ANALYST

Selamat pagi teman blogger,
hari ini hujan deras diwilayah stasiun cawang jakarta selatan, jadi kita ngga bisa kemana-mana. Oleh karena itu saya ingin membagikan beberapa hal yang mungkin bisa digunakan ketika mengerjakan sebuah test untuk bisa masuk menjadi seorang data analis.

yang paling sering muncul disoal data analis adalah test query sql. (kenapa saya menulis hal ini: karena pada umumnya lulusan statistik tempat saya sekolah dulu banyak mengabaikan belajar query sql).

oke, berikut adalah salah satu soal yang mungkin muncul:
kita diberikan dua bentuk tabel data yaitu "Employee" dan "AnnualReview"
kemudian pertanyaan studi kasus seperti berikut:

  1. Tulis permintaan untuk mengembalikan semua karyawan yang masih bekerja untuk perusahaan dengan nama belakang dimulai dengan "Smith" diurutkan berdasarkan nama belakang kemudian nama depan.
  2. Mengingat tabel `Employee` dan` AnnualReviews`, tulis permintaan untuk mengembalikan semua karyawan yang tidak pernah memiliki ulasan yang disortir oleh HireDate.
  3. Tulis permintaan untuk menghitung selisih (dalam hari) antara karyawan yang paling dan paling tidak bekerja di perusahaan.
  4. Mengingat tabel karyawan di atas, tulis kueri untuk menghitung periode terpanjang (dalam hari) bahwa perusahaan telah pergi tanpa merekrut atau memecat siapa pun.
  5. Tulis permintaan yang mengembalikan setiap karyawan dan untuk setiap baris / karyawan termasuk jumlah karyawan terbanyak yang bekerja untuk perusahaan setiap saat selama masa jabatan mereka dan tanggal pertama yang maksimum tercapai. Poin tambahan karena tidak menggunakan kursor.

Jawaban querynya sebagai berikut :

Pertama Buat tabel databases nya dulu:

create table Employee (

FirstName varchar (30),

LastName varchar (30),

Id varchar (8),
HireDate date,
TerminationDate date,
Salary float8
);

create table AnnualReviews (
ID varchar (8),
EmpID varchar (8),
ReviewDate date
);

Kedua, masukin nilai ke setiap variabel nya

insert into Employee (FirstName, LastName, Id, HireDate, TerminationDate, Salary)
values 
('Bob','Smith','1','2009-06-20','2016-01-01','10000'),
('Joe','Jarrod','2','2010-02-12',null,'20000'),
('Nancy','Soley','3','2012-03-14',null,'30000'),
('Keith','Widjaja','4','2013-09-10','2014-01-01','20000'),
('Kelly','Smalls','5','2013-09-10',null,'20000'),
('Frank','Nguyen','6','2015-04-10','2015-05-01','60000');

insert into AnnualReviews (ID, EmpID, ReviewDate)
values 
('10','1','2016-01-01'),
('20','2','2016-04-12'),
('30','10','2015-02-13'),
('40','22','2010-10-12'),
('50','11','2009-01-01'),
('60','12','2009-03-03'),
('70','13','2008-12-01'),
('80','1','2003-04-12'),
('90','1','2014-04-30')

kemudian, lakukan analysis sesuai perintah soal:

  1. select concat (FirstName,' ', LastName) as name from Employee where TerminationDate isnull order by LastName, FirstName
  2. select concat (FirstName,' ', LastName) as name from Employee left join AnnualReviews on Employee.Id=AnnualReviews.EmpID where AnnualReviews.ReviewDate isnull order by Employee.HireDate
  3. select datediff('day', min (HireDate), max (HireDate)) as difference_day
    from Employee
    where TerminationDate isnull
  4. select max(dr) as Longest_Period
    from
     (
          select datediff('day', a, (lead(a) over(order by a))) as dr
          from
           (
             select HireDate as a 
             from Employee 
             union all
          select TerminationDate 
    from Employee
    where TerminationDate is not null
           )t
      )r
  5. select   concat (FirstName,' ', LastName) as Name, Hiredate, Periode_Date, TerminationDate, Total_Employ_Active
    from Employee as x
    cross join 
    (
    select distinct d as Periode_Date, sum(SK ) over (order by d) as total_employ_active
    from
                   (
    select distinct d, (lead(d) over (order by d)), SK  
    from
                            (
    select HireDate as d , 1 as SK  
    from Employee

Silakan mencoba dan belajar. Jika menemukan sesuatu yang keliru dari query yang saya buat silahkan isi kolom komentar. Saya akan dengan senang hati menerima nya.

Baca juga:

Tags:

0 komentar



Emoticon