0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan36 halaman

(Day 2) Data Enthusiast Camp - Intermediate SQL

LEFT JOIN akan menampilkan semua baris dari tabel kiri (tabel pertama) dan baris yang sesuai dari tabel kanan (tabel kedua). Jika tidak ada baris yang sesuai di tabel kanan, maka kolom-kolom dari tabel kanan akan menampilkan NULL.

Diunggah oleh

koalajunkyu69
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 PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan36 halaman

(Day 2) Data Enthusiast Camp - Intermediate SQL

LEFT JOIN akan menampilkan semua baris dari tabel kiri (tabel pertama) dan baris yang sesuai dari tabel kanan (tabel kedua). Jika tidak ada baris yang sesuai di tabel kanan, maka kolom-kolom dari tabel kanan akan menampilkan NULL.

Diunggah oleh

koalajunkyu69
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 PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 36

DATA

get to know about structured query


ENTHUSIAST
language (sql) and data visualization for
beginner
CAMP
TABLE OF
• How To Do Data Cleansing Using BigQuery? 01

CONTENT (Day 2)
• SQL Aggregate Function

• SQL Intermediate Function


02

03

• SQL String and Date Function 04


HOW TO DO DATA
01
CLEANSING USING
BIGQUERY?
DATA CLEANSING
Data cleansing (data cleaning atau data scrubbing) adalah proses mengidentifikasi, mengkoreksi, dan
menghapus kesalahan atau ketidaksesuaian dalam data yang disimpan dalam basis data atau sistem
informasi.

Tujuan utama dari data cleansing adalah untuk memastikan bahwa data yang digunakan dalam analisis,
pelaporan, atau aplikasi komputasi lainnya adalah akurat, konsisten, dan dapat diandalkan.

Beberapa cara yang dapat dilakukan dalam proses data cleansing:

1 Menghapus Data Duplicate Note:


Beberapa proses Data Cleansing tidak dapat dilakukan di
2 Menangani Null Value Public Dataset di BigQuery karena keterbatasan akses
untuk query menggunakan syntax seperti CREATE,
3 Perubahan Tipe Data DELETE, REPLACE. Namun tetap bisa digunakan jika
menggunakan dataset pribadi yang diupload dari local
file.
4 Penghapusan Outlier
DATA CLEANSING
1 Menghapus Data Duplicate
Membuat tabel baru untuk menyimpan CREATE TABLE dataset.clean_data AS
tabel dataset yang sudah dihapus duplicate SELECT DISTINCT *
datanya FROM dataset.raw_data;

Me-replace tabel lama untuk menyimpan REPLACE TABLE dataset.clean_data AS


tabel dataset yang sudah dihapus duplicate SELECT DISTINCT *
datanya FROM dataset.raw_data;
DATA CLEANSING
2 Menangani Null Value

Ada beberapa cara untuk menangani nilai null yang disesuaikan dengan tipe data, konteks/kebutuhan,
dan proporsi nilai null.

1. Hapus Baris dengan Nilai NULL. Contoh jika ingin menghapus baris dengan nilai NULL dalam
kolom "column_name":
DELETE FROM your_dataset.your_table
WHERE column_name IS NULL;

2. Ganti Nilai NULL dengan Nilai Lain. Contoh jika ingin mengganti nilai NULL dalam kolom
"column_name" dengan nilai rata-rata dari kolom tersebut:
UPDATE your_dataset.your_table
SET column_name = AVG(column_name)
WHERE column_name IS NULL;
DATA CLEANSING
2 Menangani Null Value

Hal-hal yang perlu diperhatikan dalam menangani NULL value:

1. Pergantian nilai NULL dengan nilai lain perlu disesuaikan dengan jenis datanya.

Umumnya, tipe data string menggunakan modus, sedangkan tipe data numerik menggunakan
rata-rata atau median (jika range datanya cukup jauh) untuk mengganti nilai NULL.

2. Ketika memutuskan untuk menghapus atau mengganti nilai NULL, perlu dipertimbangkan
juga proporsi nilai NULL dengan nilai yang sudah terisi.

Jika nilai NULL terlalu banyak dan jika diganti dengan modus/rata-rata/median dapat mempengaruhi
karakteristik data secara keseluruhan, maka baris/kolom yang berisi nilai NULL tersebut sebaiknya
dihapus.
DATA CLEANSING
3 Perubahan Tipe Data

Perubahan tipe data kolom dapat dilakukan dengan perintah CAST.


Contohnya dalam syntax berikut, kolom age ingin diubah tipe datanya menjadi INT64 dan
disimpan dalam kolom baru bernama age_int.

Membuat tabel baru untuk menyimpan CREATE TABLE dataset.clean_data AS

kolom yang tipe datanya sudah diganti SELECT CAST(age AS INT64) AS age_int
FROM dataset.raw_data;

Me-replace tabel lama untuk menyimpan REPLACE TABLE dataset.clean_data AS


kolom yang tipe datanya sudah diganti SELECT CAST(age AS INT64) AS age_int
FROM dataset.raw_data;
DATA CLEANSING
4 Penghapusan Outlier

Penghapusan outlier dapat dilakukan berdasarkan kriteria tertentu dengan menggunakan klausa
WHERE. Contohnya kriteria yang ditetapkan berada dalam rentang tertentu antara min_value dan
max_value:

Membuat tabel baru untuk menyimpan CREATE TABLE dataset.clean_data AS

kolom dengan data yang sudah dimodifikasi SELECT *


FROM dataset.raw_data
WHERE column_name BETWEEN min_value AND max_value;

Me-replace tabel lama untuk menyimpan REPLACE TABLE dataset.clean_data AS


SELECT *
kolom dengan data yang sudah dimodifikasi
FROM dataset.raw_data
WHERE column_name BETWEEN min_value AND max_value;
SQL AGGREGATE
02
FUNCTION
SQL aggregate Function
08

QUERY USING BIGQUERY


Dataset ID: bigquery-public-
data.san_francisco_bikeshare
Remember!!
Table yang tersedia:
● bikeshare_regions SELECT * FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_station_status`

● bikeshare_station_info ID Dataset Nama Tabel

● bikeshare_station_status
● bikeshare_trips Cara copy Dataset dan
Table ID:
1. Klik titik tiga di Dataset
atau Table
2. Pilih Copy ID
08

REMEMBER THE DATA


Sebelum mulai analisis data, penting untuk memahami struktur data. Oleh karena itu, kita perlu ERD!
STRUCTURE
From This… … To This
SQL aggregate Function
Contoh query COUNT:
● Menghitung jumlah baris dalam sebuah tabel
SELECT COUNT(*) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

Contoh query DISTINCT:


● Mengambil nilai unik dari sebuah kolom
SELECT DISTINCT(start_station_name) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

Contoh query COUNT(DISTINCT):


● Menghitung nilai unik dari sebuah kolom
SELECT COUNT(DISTINCT(start_station_name)) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
SQL aggregate Function
Contoh query SUM:
● Menghitung total dari kolom tertentu
SELECT SUM(duration_sec) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

Contoh query AVG:


● Menghitung nilai rata-rata dari kolom tertentu
SELECT AVG(duration_sec) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

Contoh query ROUND:


● Membulatkan nilai numerik ke sejumlah desimal tertentu
SELECT ROUND(AVG(duration_sec), 2) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
SQL aggregate Function
Contoh query MIN/MAX:
● Menghitung nilai minimum/maksimum dari kolom tertentu
SELECT MIN(duration_sec) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

SELECT MAX(duration_sec) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;


SQL aggregate Function
Contoh query LENGTH:
● Menghitung panjang (jumlah karakter) dari sebuah string
SELECT LENGTH(start_station_name) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

No Context

SELECT(start_station_name), LENGTH(start_station_name) FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;

Make It Better
SQL INTERMEDIATE
03
FUNCTION
sql intermediate Function
query: join
● Join berfungsi untuk menggabungkan 2 atau lebih table
○ Inner join
○ Left join
○ Right join
○ Outer join
query: join
Contoh query LEFT JOIN:
● Jika kita ingin menampilkan nama-nama station dan nama asal regionnya, kita bisa menggabungkan
tabel bikeshare_station_info dan tabel bikeshare_region menggunakan region_id. Karena nama
asal region tidak tersedia di bikeshare_station_info, namun hanya tersedia di tabel
bikeshare_region.

SELECT
i.name AS Station_Name,
r.name AS Region_Name
FROM
bigquery-public-data.san_francisco_bikeshare.bikeshare_station_info AS i
LEFT JOIN
bigquery-public-data.san_francisco_bikeshare.bikeshare_regions AS r
ON
i.region_id = r.region_id;
query: GROUP BY
● Digunakan untuk mengelompokkan suatu data berdasarkan kolom tertentu
● Biasanya diikuti fungsi agregasi untuk melakukan perhitungan. Contoh:
○ Nilai max, di group berdasarkan nama customer
○ Nilai minimum, di group berdasarkan hari
○ Nilai sum profit, di group berdasarkan customer id

Contoh query GROUP BY:


● Menampilkan nilai maksimum dan minimum dari duration_sec berdasarkan masing-masing
start_station_name (tabel bikeshare_trips)
SELECT
start_station_name,
MAX(duration_sec) AS max_duration,
MIN(duration_sec) AS min_duration
FROM
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
GROUP BY
start_station_name;
query: ORDER BY
● Mengurutkan field atau hasil berdasarkan ketentuan
○ Ascending (default)
○ Descending -> DESC

Contoh query ORDER BY:


● Dari contoh sebelumnya, ingin diurutkan berdasarkan duration_sec tertinggi

SELECT
start_station_name,
MAX(duration_sec) AS max_duration,
MIN(duration_sec) AS min_duration
FROM
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
GROUP BY
start_station_name
ORDER BY
MAX(duration_sec) DESC;
LIKE
● Melihat kecocokan dengan pola yang diinginkan, bisa dari huruf awal, huruf terakhir, dan pola-pola lainnya

Contoh query LIKE:


● Menampilkan start_station_name dari tabel bikeshare_trips yang berawalan huruf K

SELECT DISTINCT start_station_name


FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
WHERE start_station_name like 'K%';
IN
● Melihat data dari beberapa nilai pada suatu kolom

Contoh query IN:


● Menampilkan informasi pada tabel bikeshare_trips di mana start_station_name nya berasal dari
Koshland Park dan Kaiser Hospital
SELECT *
FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
WHERE start_station_name in ('Koshland Park', 'Kaiser Hospital');
BETWEEN
● Memunculkan data berdasarkan range tertentu

Contoh query BETWEEN:


● Menampilkan informasi pada tabel bikeshare_trips di mana start_date-nya pada rentang bulan April 2018

SELECT *
FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips
WHERE start_date BETWEEN '2018-04-01' AND '2018-04-30';
SQL STRING & DATE
04
FUNCTION
STRING FUNCTION
● Proses manipulasi data string dapat dilakukan dengan fungsi:
○ Concat
○ Replace
○ Substr

Contoh fungsi CONCAT:


● CONCAT digunakan untuk menggabungkan beberapa string
● Contohnya ingin menggabungkan antara start_station_name dan end_station_name dari tabel
bikeshare_trips
SELECT
CONCAT(start_station_name,', ',end_station_name) as station_stops
FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
STRING FUNCTION
Contoh fungsi REPLACE:
● REPLACE digunakan untuk mengganti string dengan string baru
● Biasanya digunakan untuk memperbaiki kesalahan penulisan
● Contohnya ingin mengganti kata ‘Japan’ menjadi ‘Japanese’ dari start_station_name pada tabel
bikeshare_trips

SELECT start_station_name,
REPLACE(start_station_name,'Japan','Japanese') as start_station_name_new
FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
STRING FUNCTION
Contoh fungsi SUBSTR:
● SUBSTR digunakan untuk mengambil bagian dari string
● Contohnya ingin mengambil 5 huruf pertama dari start_station_name pada tabel bikeshare_trips

SELECT start_station_name,
SUBSTR(start_station_name, 0, 5) as start_station_name_new
FROM bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
DATE FUNCTION
● Tanggal dan waktu dapat disimpan dalam berbagai jenis di dalam database
○ Date
○ Time
○ Datetime
○ Timestamp
○ Year

Menarik tanggal dan waktu sekarang:


● Menarik tanggal dan waktu sekarang, pada saat running syntax SQL

select
current_date() as date_now,
current_time() as time_now
DATE FUNCTION
Membuat tanggal dan waktu sesuai keinginan:
select
date(2021, 01, 01) as make_date,
time(15, 34, 33) as make_time;

Mengambil tanggal dan waktu dari format yang ada:


select start_date
, extract(day from start_date) extract_day
, extract(year from start_date) as year
, extract(month from start_date) as month
from bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
DATE FUNCTION
Fungsi date_trunc():

date_trunc() mengambil data dengan format hasil yang berbeda

select start_date
, date_trunc(start_date, month) as month
, date_trunc(start_date, year) as year
from bigquery-public-data.san_francisco_bikeshare.bikeshare_trips;
08

Case study homework


Dataset Kasus : theLook eCommerce - BigQuery Public Data
https://console.cloud.google.com/marketplace/product/bigquery-public-data/thelook-ecommerce

Kasus 1 : Tampilkan data products yang memiliki cost lebih dari 200$ dan ada berapa jumlahnya?

Kasus 2 : Temukan jumlah pembeli unik (berdasarkan id_user) yang menyelesaikan pesanan selama 2023

Kasus 3 : Temukan 3 kategori produk teratas yang memiliki variasi SKU terbanyak yang diinput ke sistem pada
tahun 2019
08

Case study homework


Dataset Kasus : Stackoverflow - BigQuery Public Data
https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=stackoverflow&page=dataset

Kasus 1 : Tampilkan 100 data pengguna yang berada di kanada, amerika serikat, dan spanyol

Kasus 2 : Tampilkan 10 pengguna pertama (berdasarkan tanggal pendaftaran) yang memiliki reputasi lebih dari
500

Kasus 3 : Tampilkan 100 komentar pertama yang dibuat setelah 31 Desember 2020 dan memiliki skor lebih dari 5
13

Thank
you

Anda mungkin juga menyukai