Jendela Statistika

Melihat Dunia Dengan Data Sebagai Sebuah Investasi

DATEDIFF, CAST, ROW_NUMBER, DENSE RANK, RANK, LEAD, LAG, WHERE, HAVING PADA STUDI KASUS ANALISIS DENGAN QUERY SQL

Selamat pagi kawan blogger semuanya, 
Pagi ini saya mencoba menyempatkan menuliskan dokumentasi sekaligus latihan melakukan analisa dengan query sql.

Pada pagi ini dengan menggunakan bantuan fasilitas yang sama yaitu google bigquery saya akan memulai studi kasus berikut ini.

catatan:
jika kawan-kawan belum tahu cara membuat database DML nya bigquery silahkan baca halaman ini BELAJAR INSERT DATA KE TABLE DATABASE DI BIGQUERY 

mari kita mulai belajarnya:

pertama, insert data ke tabel 'member'
kedua, insert data ke tabel 'orders'
ketiga, kita akan mencoba perintah 'datediff' dan 'cast' serta mencari tahu apa kegunaannya:
catatan:

date_diff = digunakan untuk mencari nilai rentang diantara dua waktu
cast = perintah untuk conversi dari suatu type data ke type data lainnya (kasus diatas adalah dari string ke type data date)

keempat, kita akan mencoba perintah 'row_number':
catatan:

row number = digunakan untuk menomori hasil dari set hasil. Lebih khusus lagi, mengembalikan nomor urut baris dalam suatu partisi hasil, mulai dari 1 untuk baris pertama di setiap partisi.

kelima, kita akan mencoba perintah 'dense rank'  dan 'rank':
catatan:

dense_rank dan rank= memiliki kegunaan yang hampir sama seperti row number

apa perbedaan antara rank, dense_rank dengan row_number?
perhatikan penjelasan singkat berikut ini:

catatan singkat:

ROW_NUMBER() : mengambil data row number unik dari setiap row yang dihasilkan, tanpa melihat apakah row tsb duplicate atau tidak.

DENSE_RANK() : mengambil data row number unik untuk setiap row unik (non-duplicate) yang dihasilkan tanpa meninggalkan gap diantaranya.

RANK() : mengambil data row number unik untuk setiap row unik (non-duplicate) yang dihasilkan dengan meninggalkan gap diantaranya.

keenam, kita akan mencoba perintah 'lead' dan 'lag':
catatan:
lead dan lag = memiliki fungsi yang hampir mirip

perhatikan catatan berikut ini untuk mengetahui perbedaan diantara mereka berdua:
Fungsi-fungsi ini mengakses data dari baris berikutnya (lead) dan baris sebelumnya (lag) pada hasil yang sama yang ditetapkan tanpa menggunakan self-gabung.

ketujuh, kita akan mencoba perintah 'where', 'having':

where:
having:
catatan:

where dan having = memiliki tujuan yang hampir sama, yaitu berguna sebagia fungsi filter.
berikut adalah hal yang membedakan mereka berdua:

where melakukan filterisasi data yang berada didalam tabel sebelum dilakukan query aggregasi.
having melakukan filterisasi data dari hasil query setelah aggregasi.

kedelapan, kita akan mencoba memahami 'group by', 'order by', 'like', 'desc' dan 'asc':

catatan:

group by = digunakan untuk mengelompokkan berdasarkan (nama tabel yang mana)
order by = digunakan untuk mengurutkan berdasarkan (nama tabel yang mana)
like= digunakan untuk menemukan data sesuai dengan pola tertentu (regex)
desc = urutkan dari besar ke kecil (A sampai ke Z atau paling besar sampai 0)
asc = adalah lawan atau kebalikan desc

selamat belajar dan mencoba kawan, semoga bermanfaat......

Baca juga:

0 komentar



Emoticon