0% menganggap dokumen ini bermanfaat (0 suara)
61 tayangan40 halaman

Data Engineering Wirh Big Query

Diunggah oleh

Deo Febryan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
61 tayangan40 halaman

Data Engineering Wirh Big Query

Diunggah oleh

Deo Febryan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 40

Data Series

Fair
Contents

2
Memahami Kenapa Penting Belajar SQL
Introduction

Memahami konsep database DBMS


Konsep Database ( Database Management System)

Memahami cara mengambil data dengan


Basic Query menggunakan query
Contents

Memahami konsep WHERE dan operator


WHERE clause logikanya

memahami control flow dengan CASE WHEN


CASE WHEN

Memahami konsep aggregate pada SQL


Aggregation

Memahami konsep penggabungan data


Join dan Union dengan JOIN dan UNION
Contents

2
Memahami Cara kerja subquery
Subquery

Memahami cara kerja Table Expression untuk


Create Table Expression analisis data

memahami fungsi window seperti


Window Function row_number,rank,dense_rank
Introduction
Introduction

SQL atau Structured Query Language


merupakan bahasa standar yang terstruktur
dimana digunakan dalam manajemen,
mengakses, serta mengolah data pada
database.

Query pada database yang biasa digunakan


untuk menyusun atau mendeklarasikan
database biasanya disimpan dalam format
*.sql
Introduction

SKILL SQL SANGAT BANYAK DICARI DI KALANGAN


DATA APAPUN
Introduction

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:

● Dasar Pengelolaan Basis Data


● Kemampuan Memanipulasi Data
● Integrasi dengan Aplikasi
● Optimasi Kinerja
● Keterampilan yang dibutuhkan banyak industri
Introduction
Konsep Database
Konsep Database

Database adalah kumpulan data yang terorganisir


dengan baik, disimpan secara sistematis dan dapat
diakses serta dapat dikelola dengan mudah.

Ciri ciri database:


1. Menyimpan seluruh data secara sistematik.
2. Penyimpanan data dalam jumlah besar.
3. Format data yang terstandarisasi dan konsisten
4. Cepat dan mudah untuk memanipulasi data
(menambah data baru, delete, edit dan etc)
Data Management System

Data Management System (DBMS) adalah sebuah


software untuk membuat dan mengatur database
secara efisien dan terstruktur

Salah satu tipe Database management system yang


sering digunakan DBMS adalah RDBMS atau relational
database management system yang menyimpan
data tabular (tabel) dan diketahui hubungan antar
tabel tabelnya contoh RDMS adalah MySQL,
PostgreSQL, Oracle, SQL Server dan etc.

NoSQL adalah contoh lain dari DBMS yang


menyimpan data tidak terstruktur seperti JSON.
Contohnya MongoDB, Cassandra, Amazon S3, etc.
Basic Query
Akses Bigquery
silahkan buka link berikut ini link

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

Mengambil Semua Kolom pada tabel

select * from [tabel]

Mengambil beberapa Kolom pada tabel


select [col_1],[col_2],...,[col_n] from [tabel]

Mengambil kolom dengan membatasi jumlah row pada tabel


select [col_1],[col_2],...,[col_n] from [tabel]
limit 100

limit berfungsi untuk membatasi jumlah row sebanyak yang diinginkan


NUMERIC FUNCTION
STRING FUNCTION
● Sama seperti number, di PostgreSQL juga banyak menyediakan function untuk tipe data String
● Ada banyak sekali function-function yang bisa kita gunakan
● https://www.postgresql.org/docs/15/functions-string.html

● Beberapa Contoh String function:


1. lower : membuat character menjadi huruf kecil.
2. upper : membuat character menjadi huruf besar.
3. concat : menggabungkan beberapa character.
4. concat_ws : menggabungkan beberapa character dengan separation seperti koma, titik, dan lain lain.
5. trim : menghapus white space yang terdapat pada character seperti “ bayuzen” menjadi “bayuzen”
ALIAS
ALIAS adalah sebuah perintah yang digunakan untuk rename kolom yang
akan diambil dari tabel. ALIAS disingkat as pada SQL.

Contoh :

select first_name, (profit/cost) as revenue from transaksi

perintah diatas adalah mengambil first_name dan mengambil hasil


pembagian antara profit dan cost yang diberi nama nama revenue dari
table transaksi.

Contoh :

select menu, price * (1-discount) as price_after_discount from transaksi

perintah diatas adalah mengambil menu dan mengambil hasil perkalian


antara price dengan discount rate yang diberi nama price_after_dicount
dari tabel transaksi.
DISTINCT
DISTINCT adalah sebuah perintah yang berfungsi mengambil nilai unique atau menghilangkan data
duplicate
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

Operator AND Operator OR


WHERE Operator LIKE
● LIKE operator adalah operator yang bisa kita gunakan untuk mencari sebagian
data dalam String
● Ini cocok sekali ketika kita hanya ingin mencari sebagian kata dalam String
● Namun perlu diingat, operasi LIKE itu sangat lambat, oleh karena itu, tidak
disarankan jika datanya sudah terlalu besar di tabel
● Operasi LIKE case sensitive, jadi huruf besar dan kecil juga berpengaruh, jika kita
ingin tidak case sensitive, bisa menggunakan ILIKE

‘%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 pada SQL adalah sebuah pernyataan yang digunakan


untuk melakukan operasi kondisional dalam query SQL. Case when
memeriksa setiap kondisi satu per satu dan mengembalikan nilai
setelah menemukan kondisi yang cocok

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

● INNER JOIN adalah mekanisme JOIN, dimana terdapat


relasi antara tabel pertama dan tabel kedua
● Jika ada data di tabel pertama yang tidak memiliki relasi
di table kedua ataupun sebaliknya, maka hasil INNER JOIN
tidak akan ditampilkan
● Ini adalah default JOIN di PostgreSQL
● Jika kita menggunakan JOIN seperti yang sudah kita
praktekan sebelumnya, sebenarnya itu akan melakukan
INNER JOIN
LEFT JOIN

● LEFT JOIN adalah mekanisme JOIN seperti INNER JOIN,


namun semua data di table pertama akan diambil juga
● Jika ada yang tidak memiliki relasi di table kedua, maka
hasilnya akan NULL
RIGHT JOIN

● RIGHT JOIN adalah mekanisme JOIN seperti INNER JOIN,


namun semua data di table kedua akan diambil juga
● Jika ada yang tidak memiliki relasi di table pertama, maka
hasilnya akan NULL
FULL JOIN

● Full Join adalah join dimana semua data di tabel pertama


dan kedua akan ditampilkan
● Jika tidak ada data join, maka hasilnya akan berisi data
Null
UNION
Pernyataan UNION digunakan ketika kita ingin
menggabungkan hasil dari dua atau lebih query yang
memiliki struktur yang serupa. Misalnya, jika kita memiliki
dua tabel yang memiliki kolom-kolom yang sama dan kita
ingin menggabungkan hasil query dari kedua tabel tersebut
Thank you!
Any
questions?

Anda mungkin juga menyukai