[CONFIDENTIAL]
Sesi 4
SQL - BigQuery
Tujuan sesi :
● Menguraikan informasi terkait dasar-dasar SQL
● Eksplorasi berbagai fitur yang ada pada Bigquery
● Menerapkan konsep terkait tools pada Bigquery untuk
menganalisis data
● Menggunakan SELECT statement, FROM clause,
AGGREGATE FUNCTION, WHERE, GROUP BY, HAVING,
ORDER BY, LIMIT
Section 4 : SQL - BigQuery
● Dasar-dasar SQL (BigQuery)
● Informations Schema views
● Pembuatan CSV dan proses importing
ke Bigquery
● Statements
Agenda hari ini ●
●
SQL Operator
SELECT statement
● FROM clause
● AGGREGATE FUNCTION (COUNT,
AVG, MIN, MAX, SUM)
● WHERE, GROUP BY, HAVING, ORDER
BY, LIMIT
Aturan Sesi:
Mengaktifkan Berpartisipasi Atur dalam kondisi Raise hand/chat jika
kamera aktif mute ingin bertanya
Yuk kita refleksi!
Apa itu SQL?
Apa fungsi SQL terhadap seorang Data
Analyst?
Section 4 SQL - BigQuery
Bahasa query yang
dirancang untuk
SQL? pengambilan informasi
tertentu dari database
Kelebihan SQL?
● Dibandingkan dengan RDBMS lainnya, SQL dapat dikatakan memiliki
keamanan yang lebih baik
● Dapat diinstal dan dikonfigurasi dengan sangat mudah tanpa
menghabiskan terlalu banyak waktu
● Memiliki sejumlah fungsi untuk mengoptimalkan penyimpanan data,
sehingga data yang disimpan akan disesuaikan secara otomatis di
tempat untuk kemudahan akses di masa mendatang
● Memiliki fungsi backup otomatis, jika sistem memori rusak pengguna
dapat segera memulihkan datanya
Platform SQL
MySQL PostgreSQL BigQuery
BigQuery
BigQuery UI/Tampilan
Cara mengakses BigQuery
Buka BigQuery pada laman berikut :
[Link]
Cara mengakses BigQuery
● Klik Select Project
dan buat New
Project
● Beri nama pada
project baru lalui klik
Create
Cara mengakses BigQuery
● Klik kiri di simbol
titik tiga berikut
● Kemudian klik create
dataset dan beri
nama dataset anda
Demo BigQuery
Dasar-dasar SQL
Data Definition Language (DDL)
● Create: Perintah untuk membuat database yang baru, baik berupa tabel atau
sebuah kolom baru.
● Drop: Perintah untuk menghapus database, tabel maupun kolom hingga index.
● Alter: Perintah untuk mengubah struktur tabel yang sebelumnya sudah ada,
seperti nama tabel, penambahan kolom, mengubah, maupun menghapus kolom
serta menambahkan atribut lainnya.
● Truncate: Perintah untuk menghapus / mengosongkan semua record / data yang
tersimpan pada sebuah tabel
● Rename: Perintah untuk mengubah sebuah nama di sebuah tabel ataupun
kolom yang ada.
Data Manipulation Language (DML)
● Insert: Perintah untuk memasukkan sebuah record baru di dalam sebuah tabel
database.
● Update: Perintah untuk melakukan pembaruan data di sebuah tabel. Contohnya
jika ada kesalahan ketika memasukkan sebuah record. Anda tidak perlu
menghapusnya dan dapat diperbaiki menggunakan perintah ini.
● Delete: Perintah untuk menghapus sebuah record yang ada dalam sebuah
tabel.
● Lock: Perintah untuk mengunci tabel untuk mengontrol konkurensi. Konkurensi
adalah kondisi kejadian dimana banyak proses berjalan di waktu yang
bersamaan.
● Merge: Satu perintah SQL yang menggabungkan INSERT, UPDATE, DELETE
dalam satu perintah.
Tipe-tipe Data SQL
Tipe Data Contoh
Numeric Integer 234155
Float 2,3415
Date/Time Date 2019-01-01
Timestamp 2019-01-01 00:00:00 UTC
String Text Furniture, Office Tools
True/False
Boolean
1/0
SQL Operator
Operator Aritmatika & Bitwise
Syntax Operator Fungsi
X+Y Penambahan
X-Y Pengurangan
Aritmatik
X/Y Pembagian
X*Y Perkalian
& Bitwise AND
| Bitwise Bitwise OR
^ Bitwise exclusive OR
Operator Aritmatika
Operator Aritmatika juga dapat digunakan kepada jenis data
berbentuk date atau timestamp
SELECT
DATE "2021-05-20" - DATE "2021-05-19" AS
date_diff,
TIMESTAMP "2021-06-01 12:34:56.789" -
TIMESTAMP "2021-06-02 12:34:56.789" AS
time_diff
Operator Comparison
Syntax Fungsi
= Sama dengan
> Lebih besar dari
< Lebih kecil dari
>= Lebih besar sama dengan
<= Lebih kecil sama dengan
<> Tidak sama dengan
Operator Logika (1)
Syntax Fungsi
Menampilkan data jika semua kondisi
AND
dipisahkan oleh AND adalah BENAR
Menampilkan data jika salah satu kondisi
OR
yang dipisahkan oleh OR adalah BENAR
Menampilkan beberapa kondisi, seperti
IN
memilih beberapa negara bersamaan
Menampilkan nilai dalam rentang kondisi
BETWEEN
tertentu
Operator Logika (2)
Syntax Fungsi
Menggunakan logika NOT, seperti NOT IN,
NOT NOT BETWEEN, NOT LIKE, dan lain
sebagainya
Operator yang digunakan dalam klausa
LIKE WHERE untuk mencari pola tertentu dalam
kolom
Digunakan untuk membandingkan / memfilter
IS NULL
data yang sama dengan null
Operator Logika : Like
Syntax Fungsi
WHERE CustomerName LIKE 'a%' Menemukan nilai apa pun yang dimulai dengan
"a"
WHERE CustomerName LIKE '%a' Menemukan nilai apa pun yang diakhiri dengan
"a"
WHERE CustomerName LIKE '%or%' Menemukan nilai apa pun yang memiliki "atau"
di posisi apa pun
WHERE CustomerName LIKE '_r%' Menemukan nilai apa pun yang memiliki "r" di
posisi kedua
WHERE CustomerName LIKE 'a_%' Menemukan nilai apa pun yang dimulai dengan
"a" dan panjangnya minimal 2 karakter
WHERE CustomerName LIKE 'a__%' Menemukan nilai apa pun yang dimulai dengan
"a" dan panjangnya minimal 3 karakter
WHERE ContactName LIKE 'a%o' Menemukan nilai apa pun yang dimulai dengan
"a" dan diakhiri dengan "o"
Basic SQL Syntax
SELECT & FROM Syntax
● SELECT merupakan perintah menampilkan maupun mengambil sebuah data
pada tabel
● Sedangkan FROM merupakan syntax untuk menunjukkan table yang digunakan
untuk mengekstraksi data
Contoh :
SELECT kolom1
, kolom2
, kolom3
FROM table as t1
SELECT & FROM Syntax
Tampilkan kolom user_id, user_display_name serta score pada dari table comments
SELECT user_id
, user_display_name
, score
FROM `[Link]`
LIMIT Syntax
● LIMIT merupakan syntax yang digunakan untuk membatasi jumlah data yang
diambil ketika menjalankan perintah
Contoh :
SELECT kolom1
, kolom2
, kolom3
FROM table as t1
LIMIT 50
LIMIT Syntax
Tampilkan 100 data id, display_name serta views pada dari table users
SELECT id
, display_name
, views
FROM `[Link]`
LIMIT 100
ORDER BY Syntax
● ORDER BY merupakan syntax yang digunakan untuk mengurutkan tampilan
dari hasil query/ekstraksi data dengan kolom tertentu
Contoh :
SELECT kolom1
, kolom2
, kolom3
FROM table as t1
ORDER BY kolom1 ASC|DESC
LIMIT 50
ORDER BY Syntax
Tampilkan 100 data id, display_name serta views pada dari table users dan urutkan
berdasarkan views dari yang tertinggi
SELECT id
, display_name
, views
FROM `[Link]`
ORDER BY views DESC
LIMIT 100
WHERE Syntax
● WHERE merupakan syntax yang digunakan untuk melakukan filter kepada data
berdasarkan kondisi tertentu
Contoh :
SELECT kolom1
, kolom2
, kolom3
FROM table as t1
WHERE kolom3 > 1
ORDER BY kolom1
LIMIT 50
WHERE Syntax
Tampilkan 100 data id, display_name serta views yang lebih dari 25000 dari table
users dan urutkan berdasarkan views dari yang tertinggi
SELECT id ,display_name ,views
FROM `[Link]`
WHERE views > 25000
ORDER BY views DESC
LIMIT 100
Basic Aggregate Function
COUNT Function
● Fungsi COUNT berguna untuk menghitung berapa banyak data yang ingin kita
hitung
Contoh : Tampilkan total user yang memiliki reputasi diantara 2000-3000
SELECT COUNT(DISTINCT id)
FROM `[Link]`
WHERE reputation BETWEEN 2000 AND 3000
SUM Function
● Fungsi SUM digunakan untuk menjumlahkan data-data numerik
Contoh : Tampilkan total views user yang berada di UK
SELECT SUM(views) as total_views
FROM `[Link]`
WHERE location LIKE "%UK%"
AVG Function
● Fungsi SUM digunakan untuk menghitung rata-rata angkanya
Contoh : Tampilkan rata-rata views user yang berada di UK
SELECT AVG(views) as total_views
FROM `[Link]`
WHERE location LIKE "%UK%"
MIN & MAX Function
● Fungsi MIN digunakan untuk menghitung atau menampilkan nilai terkecil,
sedangkan MAX kebalikannya
Contoh : Tampilkan total view terendah dan tertinggi user dalam table users
SELECT MIN(views) min_views
, MAX(views) max_views
FROM `[Link]`
Syntax Lanjutan
GROUP BY Function
● GROUP BY digunakan untuk menghitung menghitung agregasi data dalam
suatu kategori atau grup tertentu
Contoh : Tampilkan 5 user beserta tanggal pertama dan terakhir memposting
pertanyaan
SELECT owner_display_name as username
, DATE(MIN(creation_date)) tanggal_post_pertama
, DATE(MAX(creation_date)) tanggal_post_terakhir
FROM
`[Link].posts_questions`
GROUP BY 1
LIMIT 5
HAVING Function
● HAVING mempunyai fungsi yang mirip dengan WHERE, namun HAVING
digunakan apabila kita ingin memfilter suatu hasil agregasi
Contoh : Tampilkan 5 user berada di UK dan memiliki total views di atas 10000
SELECT id
, SUM(views) as total_views
FROM `[Link]`
WHERE location LIKE "%UK%"
GROUP BY 1
HAVING SUM(views) > 10000
ORDER BY SUM(views) DESC
LIMIT 5
Ada yang ingin bertanya?
Mari Berlatih
Mari berlatih!
Menggunakan data dari stackoverflow, buatlah query untuk menjawab
pertanyaan berikut ini :
1. Tampilkan 5 user terakhir yang berasal dari United States dan memiliki
reputasi lebih dari 5000
2. Tampilkan 500 data komen terakhir yang memiliki kata SQL dan
BigQuery di dalamnya
3. Tampilkan 100 komentar yang dibuat setelah 31 Desember 2020 dan
memiliki skor lebih dari 5
Selamat bekerja!
Tugas Mandiri!
Instruksi
Pada sesi selanjutnya, Anda akan belajar mengenai query lanjutan pada SQL
Bigquery. Untuk mempersiapkan diri ke sesi selanjutnya, silahkan kerjakan tugas
mandiri berikut ini!
Silahkan akses dokumen berikut untuk instruksi selanjutnya!
Selamat berlatih!
[CONFIDENTIAL]
Terima Kasih