Data Engineering Wirh Big Query
Data Engineering Wirh Big Query
Fair
Contents
2
Memahami Kenapa Penting Belajar SQL
Introduction
2
Memahami Cara kerja subquery
Subquery
Belajar SQL (Structured Query Language) penting karena SQL adalah bahasa
yang digunakan untuk mengelola dan memanipulasi basis data dalam sistem
manajemen basis data relasional (RDBMS). Berikut adalah beberapa alasan
mengapa penting belajar SQL:
Jika muncul pop-up seperti gambar diatas silahkan centang semua box dan klik
agree and continue
pada sesi kali ini kita akan menggunakan dataset dari public data dari big query yaitu
`bigquery-public-data.chicago_taxi_trips.taxi_trips`
Basic Query
Contoh :
Contoh :
SELECT
distinct country_id,
name,
national_day,
FROM countries
WHERE clause
WHERE
WHERE adalah sebuah perintah untuk melakukan filter berdasarkan kriteria yang diinginkan.
Sederhananya WHERE bekerja dengan sebuah conditional.
● Saat mengambil data menggunakan perintah SQL SELECT, kadang kita ingin melakukan pencarian
data
● Misal, kita ingin mengambil data barang yang harganya 1jt, atau mengambil data barang yang
quantity nya 0 (stok nya kosong)
● Hal ini bisa kita lakukan dengan WHERE clause setelah perintah SELECT
contoh
select
menu,
harga
from
transaksi
where
harga > 1000000
WHERE Operator
WHERE Operator AND OR
‘%b’
WHERE Operator NULL
● Untuk mencari data yang berisi NULL, kita tidak bisa menggunakan operator
perbandingan = NULL.
● Ada operator khusus untuk mencari data NULL, yaitu menggunakan NULL operator
● IS NULL, artinya mencari yang NULL
● IS NOT NULL, artinya mencari yang tidak NULL
contoh
select
menu,
harga
from
transaksi
where
menu is null
WHERE Operator BETWEEN
● Kadang kita ingin mencari data yang >= dan <= secara sekaligus
● Misal kita ingin mencari products yang harganya antara 10000 sampai 20000
● Untuk melakukan ini, kita bisa menggunakan WHERE price >= 10000 AND price <= 20000
● Namun ada operator BETWEEN yang bisa kita gunakan agar lebih sederhana
● Untuk kebalikannya, kita bisa gunakan NOT BETWEEN
contoh
select
menu,
harga
from
transaksi
where
harga between 1000 and 10000
WHERE Operator IN
● Operator IN adalah operator untuk melakukan pencarian sebuah kolom dengan beberapa nilai.
● Misal kita ingin mencari products dengan category Makanan atau Minuman, maka kita bisa
menggunakan operator IN
● Untuk kebalikannya, kita bisa menggunakan NOT IN
contoh
select
menu,
harga
from
transaksi
where
menu in (‘coca cola’,’nasi padang’)
CASE WHEN
CASE WHEN
CASE WHEN kondisi1 THEN hasil1 WHEN kondisi2 THEN hasil2 … ELSE hasil_akhir END;
select id, nama,gaji, case when gaji > 1000000 then ‘Sangat tinggi’ else ‘rendah’
end as kategori_gaji from karyawan
Aggregate
Aggregate
● PostgreSQL mendukung function-function untuk melakukan aggregate
● Misal, kita ingin melihat harga paling mahal di tabel product, atau harga termurah, atau rata-rata
harga produk, atau total jumlah data di tabel, dan lain-lain
● https://www.postgresql.org/docs/current/functions-aggregate.html
Untuk melakukan agregat di SQL membutuhkan argumen berupa group by setelah from, jika
menggunakan where maka group by terletak setelah where
select
menu,
avg(harga) as avg_harga
from
transaksi
group by
menu
select
menu,
avg(harga) as avg_harga
from
transaksi
where menu in (‘coca cola’,’nasi padang’)
group by
menu
Aggregate Filter dengan HAVING
● Kadang kita ingin melakukan filter terhadap data yang sudah kita grouping
● Misal kita ingin menampilkan rata-rata harga per kategori, tapi yang harganya diatas 10.000
misalnya
● Jika menggunakan WHERE di SELECT, hal ini tidak bisa dilakukan
● Untuk memfilter hasil aggregate function, kita harus menggunakan HAVING clause dan HAVING
clause terletak setelah GROUP BY
select
category,
count(id) as total_id
from products
group by category
having count(id) > 1
JOIN dan UNION
JOIN
● PostgreSQL mendukung query SELECT langsung ke beberapa tabel secara sekaligus
● Namun untuk melakukan itu, kita perlu melakukan JOIN di SQL SELECT yang kita buat
● Untuk melakukan JOIN, kita perlu menentukan tabel mana yang merupakan referensi ke tabel lain
● Join cocok sekali dengan foreign key, walaupun di PostgreSQL tidak ada aturan kalau JOIN harus
ada foreign key
● Join di PostgreSQL bisa dilakukan untuk lebih dari beberapa tabel
● Tapi ingat, semakin banyak JOIN, maka proses query akan semakin berat dan lambat, jadi harap
bijak ketika melakukan JOIN
● Idealnya kita melakukan JOIN jangan lebih dari 5 tabel, karena itu bisa berdampak ke performa
query yang lambat.
INNER JOIN