#RintisKarirImpian
Portofolio - Intensive Bootcamp
SQL for Data Analyst
Owner: Afif Ma’ruf
Build your skill and portfolio via myskill.id/bootcamp
Course Summary
1 AGREGAT
Fungsi agregat melakukan operasi pada sekumpulan nilai dan mengembalikan satu nilai Fungsi-
fungsi agregat di SQL antara lain: COUNT, SUM, MIN, MAX, AVG
§ COUNT Menghitung banyaknya data. Menggabungkan COUNT dengan DISTINCT digunakan untuk menghitung banyaknya
data yang berbeda
§ MIN Menghitung nilai minimum
§ MAX Menghitung nilai maksimum
§ SUM Menghitung jumlah
§ AVG Menghitung rata-rata
SQL Query
SELECT
COUNT(*) AS “Banyak baris”,
COUNT DISTINCT “Order ID” AS “Banyak order”, MIN(“Order Date”) AS “Tanggal awal”,
MAX(“Order Date”) AS “Tanggal akhir”, SUM(“Profit”) AS “Total profit”, AVG(“Sales”) AS “Rerata sales”
FROM transactions
#RintisKarirImpian
Course Summary
2 GROUP BY
Fungsi-fungsi agregat biasanya digabungkan dengan GROUP BY untuk mengelompokan data
berdasarkan satu atau lebih kolom
SQL Query
SELECT “Segment”,
COUNT(DISTINCT “Order ID”) AS “Banyak order”,
FROM transactions
GROUP BY “Segment”
#RintisKarirImpian
Course Summary
3 HAVING
HAVING digunakan untuk menggabungkan funsi agregat
§ 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
SQL Query
SELECT order_id AS “Order ID”, SUM(sales) AS “Nilai order”
FROM transactions
WHERE segment = ‘Consumer’
GROUP BY order_id
HAVING SUM(sales) > 100
#RintisKarirImpian
Course Summary
4 JOIN
JOIN digunakan untuk menggabungkan table 1 dan table 2
§ 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
INNER JOIN LEFT JOIN RIGHT JOIN FULL OTHER JOIN
Tabel 1 Tabel 2 Tabel 1 Tabel 2 Tabel 1 Tabel 2 Tabel 1 Tabel 2
#RintisKarirImpian
#RintisKarirImpian
Case 1
1. Kalian pastikan bahwa satu nama konsumen hanya memiliki satu customer id!
2. Produk (product_name) apa yang paling best selling
3. Produk apa yang paling merugikan selama tahun 2017
Kalian pastikan bahwa satu nama konsumen hanya memiliki satu customer id
SQL Query
select customer_name,customer_id,
count(distinct order_id) as jumlah_order
from t_order
group by customer_name, customer_id
having count(distinct customer_id) = 1
order by customer_name asc
SELECT
(Menampilkan kolom yang diinginkan)
COUNT(DISTINCT ORDER_ID) AS banyak_order
(Menghitung banyaknya data yang berbeda)
FROM t_order
(Mengambil data dari tabel t_order)
GROUP BY
(Mengelompokkan data)
HAVING COUNT(DISTINCT CUSTOMER_ID) = 1
(Menggabungkan fungsi agregat)
ORDER BY … ASC
(Mengelompokkan data)
#RintisKarirImpian
Produk (product_name) apa yang paling best selling
SQL Query
select product_name,
count(distinct order_id) as banyak_order
from t_order
group by product_name
order by banyak_order desc
SELECT
(Menampilkan kolom yang diinginkan)
COUNT(DISTINCT ORDER_ID) AS banyak_order
(Menghitung banyaknya data yang berbeda)
FROM t_order
(Mengambil data dari tabel t_order)
GROUP BY
(Mengelompokkan data)
ORDER BY …. DESC
(Menampilkan data order yang best selling)
#RintisKarirImpian
Produk apa yang paling merugikan selama tahun 2017
SQL Query
select product_name,profit,order_date
from t_order
where extract(year from order_date) = 2017
order by profit asc
SELECT
(Menampilkan kolom yang diinginkan)
FROM t_order
(Mengambil data dari tabel t_order)
WHERE EXTRACT (YEAR FROM order_date) = 2017
(Menampilkan data di tahun 2017)
ORDER BY …. DESC
(Menampilkan data profit dari yang paling merugikan)
#RintisKarirImpian
Follow me!
Instagram : @avif_maruf & @Swakarya35
LinkedIn : www.linkedin.com/in/afif-ma-ruf
Mail : [email protected]
Bootcamp Data Analysis
by @myskill.id