Anda di halaman 1dari 1

SQL Homework

Self-Study

Scenario:

Kamu bekerja sebagai data analyst di perusahaan penerbangan komersial. 


Divisi Customer Relation ingin meningkatkan loyalitas pelanggan dan memintamu

untuk:

Mendapatkan 3 penumpang yang paling banyak memesan tiket pada

masing-masing tahun.

Mendapatkan berapa banyak penumpang yang memesan lebih dari 50 tiket

kelas pertama, dikelompokkan berdasarkan tahun dan kategori usia sebagai

berikut:

Usia Kategori

Dibawah 21 tahun Children

21 s/d 30 tahun Early Adult

31 s/d 55 tahun Adult

Diatas 55 tahun Elder

Dataset:

Kamu akan menggunakan tabel flight_dataset dan user_dataset untuk latihan

ini. Jika kamu belum memiliki datanya, kamu bisa kembali ke tugas pertama 


di Lesson 6.

Yang harus kamu lakukan:

Kamu mungkin mendapati beberapa case dapat diselesaikan tanpa

menggunakan window function. Namun, karena kita tengah mempelajari window

function, diharapkan seluruh case diselesaikan dengan memanfaatkan window

function.

Kamu mungkin juga mendapati query yang kamu buat sedikit berbeda dengan

yang dicontohkan di video. Hal tersebut adalah hal yang wajar dan tidak

masalah sepanjang kamu menggunakan window function dan menghasilkan

output yang sama.

Skenario pertama:

Buat CTE untuk mendapatkan total order setiap penumpang setiap


tahunnya.

Gunakan window function, dapatkan rangking dari setiap penumpang.


Penumpang yang paling banyak memesan tiket mendapatkan nomor
pertama.

Kamu dapat menggunakan sintaks ROW_NUMBER() OVER (PARTITION


BY year ORDER BY total_order DESC) untuk mendapatkan ranking.
Saring data dengan kriteria rank antara 1 s/d 3 untuk mendapatkan 3

penumpang yang paling banyak memesan tiket.

Skenario kedua:

Buat CTE untuk mengkategorikan setiap user.


Buat CTE untuk mendapatkan jumlah tiket yang dibeli, dikelompokkan
berdasarkan tahun, kemudian saring hanya penumpang yang memesan

tiket lebih dari 50 kali.

JOIN kedua CTE untuk mendapatkan total order, tahun penerbangan, 



dan kelompok usia. Gunakan COUNT(user_id) OVER(PARTITION BY year

flight, age category) untuk mendapatkan penumpang berdasarkan

pengelompokkan usia.

Anda mungkin juga menyukai