#RintisKarirIm
pian
SQL for Data
Analysis
Rizki Teguh Kurniawan
Data Scientist, eFishery
Youtube: Solving with Akoyo
Agenda
Mengenal fungsi agregat: COUNT, MIN, MAX, SUM, AVG
Mengelompokkan data dengan GROUP BY
Memfilter data dengan HAVING dan perbedaannya dengan WHERE
#RintisKarirIm
pian
Fungsi Agregat
Fungsi agregat melakukan operasi pada sekumpulan nilai dan mengembalikan satu nilai
Fungsi-fungsi agregat di SQL antara lain: COUNT, SUM, MIN, MAX, AVG
SELECT ● COUNT
COUNT(*) AS “Banyak baris”, Menghitung banyaknya data.
COUNT DISTINCT “Order ID” AS “Banyak order”, Menggabungkan COUNT dengan
MIN(“Order Date”) AS “Tanggal awal”, DISTINCT digunakan untuk
MAX(“Order Date”) AS “Tanggal akhir”, menghitung banyaknya data
SUM(“Profit”) AS “Total profit”, yang berbeda
AVG(“Sales) AS “Rerata sales” ● MIN
FROM Menghitung nilai minimum
transactions ● MAX
Menghitung nilai maksimum
● SUM
Menghitung jumlah
● AVG
Menghitung rata-rata
#RintisKarirIm
pian
Mengelompokkan data menggunakan GROUP BY
Fungsi-fungsi agregat biasanya digabungkan dengan GROUP BY untuk mengelompokan data
berdasarkan satu atau lebih kolom
// GROUP BY menggunakan kolom categorical
SELECT
“Segment”,
COUNT(DISTINCT “Order ID”) AS “Banyak
order”,
FROM
transactions
GROUP BY
“Segment”
#RintisKarirIm
pian
(Cont…) Mengelompokkan data menggunakan GROUP BY
Fungsi-fungsi agregat biasanya digabungkan dengan GROUP BY untuk mengelompokan data
berdasarkan satu atau lebih kolom
// GROUP BY menggunakan kolom numerical
SELECT
“Order Date”,
COUNT(DISTINCT “Order ID”) AS “Banyak
order”,
FROM
transactions
GROUP BY
“Order Date”
#RintisKarirIm
pian
Menyaring data menggunakan HAVING
● HAVING dan WHERE memiliki fungsi yang sama
● Perbedaan di antara keduanya adalah WHERE tidak bisa digabungkan dengan fungsi agregat
sedangkan HAVING bisa.
● WHERE dan HAVING bisa ada dalam satu query dengan WHERE diposisikan lebih awal daripada
HAVING
SELECT
order_id AS “Order ID”,
SUM(sales) AS “Nilai order”
FROM
transactions
WHERE
segment = ‘Consumer’
GROUP BY
order_id
HAVING
SUM(sales) > 100
#RintisKarirIm
pian
SQL Join
Misalkan kita memiliki dua tabel A dan B
● INNER JOIN : Returns records that have matching values in both tables
● LEFT JOIN : Returns all records from the left table, and the matched records from the right table
● RIGHT JOIN : Returns all records from the right table, and the matched records from
the left table
● FULL JOIN : Returns all records when there is a match in either left or right table
#RintisKarirIm
pian
SQL Join
#RintisKarirIm
pian
Additional Learning Source
[Link]
#RintisKarirIm
pian
Mini task
● Kalian pastikan bahwa satu nama konsumen hanya memiliki satu customer id!
● Produk (product_name) apa yang paling best selling
● Produk apa yang paling merugikan selama tahun 2017
#RintisKarirIm
pian