Selamat pagi kawan blogger, hari ini saya ingin menunjukan suatu tempat yang bisa menjadi rekomendasi untuk tempat belajar basic query sql untuk kebutuhan data analyst, yaitu: W3schools sql.
ok, selanjutnya saya akan mengajak kita langsung ke implementasi belajar tapi sebelum itu berikut adalah requirment beberapa aplikasi yang dibutuhkan:
- Mysql
- Dbeaver (karena saya pakai linux, mungkin buat teman yang suka pakai windows atau mac mungkin ada tools engine query lain)
jika teman-teman merasa agak ribet karena harus install-install lagi, di W2schools sql resourse belajar yang direkomendasikan sudah menyedia semua kebutuhan untuk belajar. Saya hanya menyarankan bagi teman-teman yang iseng-iseng berhadiah untuk mencoba Create, Read and Analyst data dengan mandiri.
**jika buat teman-teman yang hanya ingin langsung belajar mengenai query bisa langsung klik "Try it Yourself" kemudian kita mendapatkan tampilan kerja langsung dari w3school sql untuk melakukan pembelajaran query.
di halaman tersebut teman-teman sudah bisa melakukan banyak query-query basic karena disana sudah ada tempat query dan beberapa tabel database yang disediakan oleh w3school.
baca dulu artikel nya sampai selesai kemudian coba implementasikan, berikut adalah bentuk implementasi belajar yang saya lakukan:
pertama adalah buatlah database baru dan gunakan database tersebut.
CREATE DATABASE rudy;
USE rudy;
setelah itu ikutin langkah pada toturial w3school, hal pertama yang ditunjukan adalah create table database dan insert data :
berikut ini adalah query sql untuk create table pada database rudy:
atau kalau sudah cukup ingat variabel dan type data yang mau di inputkan value nya bisa gunakan query berikut:
INSERT INTO test_da1 VALUES ('112', '11289346', '2018-04-02 9:34:51', '40000')
kemudian kita bisa mengecek database dan tabel serta nilai dari setiap variabel yang telah kita buat:
SHOW DATABASES;
SHOW TABLES;
setelah itu kita lakukan query data yang telah di buat:
SELECT *
FROM test_da1;
mengurutkan data berdasarkan variabel payment:
SELECT *
FROM test_da1
ORDER BY payment;
mengurutkan data berdasarkan payment, kemudian mencari nilai payment yang lebih kecil dari 50000
SELECT *
FROM test_da1
WHERE payment < 50000
ORDER BY payment;
menjumlahkan atau melakukan agregasi data
SELECT SUM(payment)
FROM test_da1;
lakukan agregasi untuk menemukan total pengeluaran konsumen
SELECT SUM(payment) as total_pengeluaran_konsumen
FROM test_da1
GROUP BY user_id;
itu adalah sekilas mengenai sedikit gambaran dasar query dengan sql.
jika teman-teman mau mencoba langsung di w3school sql berikut adalah review dari saya:
diatas adalah contoh query sederhana melihat keseluruhan data dari tabel customers. Kita juga dapat mencoba join tabel database.
atau query multiple join
atau query multiple join + select bertingkat
SELECT a.CustomerName, a.OrderID, max(a.max_Quantity)
FROM (
SELECT Customers.CustomerName, Orders.OrderID, sum(OrderDetails.Quantity) as max_Quantity
FROM Customers
join Orders on Customers.CustomerID = Orders.CustomerID
join OrderDetails on Orders.OrderID = OrderDetails.OrderID
ORDER BY OrderDetails.Quantity DESC)a;
Selamat mencoba kawan, nanti saya akan update lagi di artikel ini untuk beberapa contoh test sql untuk kebutuhan data analyst.
salah satu contoh soal test query :
kemudian kita isikan nilai simulasi kedalam variabel product_name
UPDATE test_da1
SET product_name = 'sepatu adidas'
WHERE order_id ='11229337'
data product_name nya bisa teman-teman coba isi sesuka hati (ini cuman simulasi). untuk selanjutkan kita akan membuat query dalam menyelesai case studi nya:
SELECT b.user_id, b.create_time, b.payment, b.product_name
FROM (
SELECT
@row_number:=CASE
WHEN @customer_no = user_id THEN @row_number + 1
ELSE 1
END AS number_t,
@customer_no:=user_id as user_id,
create_time,
payment,
product_name
FROM
test_da1,(SELECT @customer_no:=0,@row_number:=0) as t) b
WHERE number_t =2
***penyelesaian kasus diatas adalah dengan membuat kolom baru dan menghitung row kolom tersebut berdasakan user_id nya setelah itu kita akan mengambil value dari kolom baru tersebut yang hanya no 2 ***
***penyelesaian kasus diatas adalah dengan membuat kondisi perhitungan rata-rata > dari nilai payment ***
pertama adalah buatlah database baru dan gunakan database tersebut.
CREATE DATABASE rudy;
USE rudy;
setelah itu ikutin langkah pada toturial w3school, hal pertama yang ditunjukan adalah create table database dan insert data :
berikut ini adalah query sql untuk create table pada database rudy:
CREATE TABLE test_da1 (
user_id VARCHAR (6),
order_id VARCHAR (8),
create_time TIMESTAMP,
payment MEDIUMINT UNSIGNED
)
kemudian input data kedalam value setiap variabel yang dibuat pada tabel test_da1:
INSERT INTO test_da1 (user_id, order_id, CREATE_time, payment)
VALUES ('111', '11289345', '2018-04-02 9:36:51', '240000')atau kalau sudah cukup ingat variabel dan type data yang mau di inputkan value nya bisa gunakan query berikut:
INSERT INTO test_da1 VALUES ('112', '11289346', '2018-04-02 9:34:51', '40000')
SHOW DATABASES;
SHOW TABLES;
setelah itu kita lakukan query data yang telah di buat:
SELECT *
FROM test_da1;
mengurutkan data berdasarkan variabel payment:
SELECT *
FROM test_da1
ORDER BY payment;
mengurutkan data berdasarkan payment, kemudian mencari nilai payment yang lebih kecil dari 50000
SELECT *
FROM test_da1
WHERE payment < 50000
ORDER BY payment;
menjumlahkan atau melakukan agregasi data
SELECT SUM(payment)
FROM test_da1;
lakukan agregasi untuk menemukan total pengeluaran konsumen
SELECT SUM(payment) as total_pengeluaran_konsumen
FROM test_da1
GROUP BY user_id;
itu adalah sekilas mengenai sedikit gambaran dasar query dengan sql.
jika teman-teman mau mencoba langsung di w3school sql berikut adalah review dari saya:
diatas adalah contoh query sederhana melihat keseluruhan data dari tabel customers. Kita juga dapat mencoba join tabel database.
atau query multiple join
atau query multiple join + select bertingkat
SELECT a.CustomerName, a.OrderID, max(a.max_Quantity)
FROM (
SELECT Customers.CustomerName, Orders.OrderID, sum(OrderDetails.Quantity) as max_Quantity
FROM Customers
join Orders on Customers.CustomerID = Orders.CustomerID
join OrderDetails on Orders.OrderID = OrderDetails.OrderID
ORDER BY OrderDetails.Quantity DESC)a;
Selamat mencoba kawan, nanti saya akan update lagi di artikel ini untuk beberapa contoh test sql untuk kebutuhan data analyst.
salah satu contoh soal test query :
- temukan siapa user yang melakukan transaksi beberapa kali dalam hari yang sama, apa product yang mereka cari dan berapa yang harga yang mereka bayar pada transaksi kedua?
karena pada use case menanyakan mengenai product nya apa, maka kita tambahkan satu kolom lagi untuk variabel product name nya.
ALTER TABLE test_da1
ADD product_name VARCHAR (45);
UPDATE test_da1
SET product_name = 'sepatu adidas'
WHERE order_id ='11229337'
data product_name nya bisa teman-teman coba isi sesuka hati (ini cuman simulasi). untuk selanjutkan kita akan membuat query dalam menyelesai case studi nya:
SELECT b.user_id, b.create_time, b.payment, b.product_name
FROM (
SELECT
@row_number:=CASE
WHEN @customer_no = user_id THEN @row_number + 1
ELSE 1
END AS number_t,
@customer_no:=user_id as user_id,
create_time,
payment,
product_name
FROM
test_da1,(SELECT @customer_no:=0,@row_number:=0) as t) b
WHERE number_t =2
***penyelesaian kasus diatas adalah dengan membuat kolom baru dan menghitung row kolom tersebut berdasakan user_id nya setelah itu kita akan mengambil value dari kolom baru tersebut yang hanya no 2 ***
- temukan orders dan product ketika nilai payment nya lebih besar dari nilai rata2 payment keseluruhan transaksi
penyelesaian studi kasus nya adalah sebagai berikut:
SELECT *
FROM test_da1
WHERE payment > (SELECT AVG (payment) as avg_payment FROM test_da1)
***penyelesaian kasus diatas adalah dengan membuat kondisi perhitungan rata-rata > dari nilai payment ***
Tags:
#SQL
1 komentar