Anda di halaman 1dari 3

SQL SELECT DISTINCT *

FROM ms_pelanggan;
SELECT *
FROM ms_produk
WHEN conditional 2 THEN result
2
UNION
SELECT * FROM tabel_B;
WHERE nama_produk = ’Kotak ELSE result END
Structured Query Language, PRELIX & ALIAS Pensil DQLab’
Penggunaan UNION dengan
bahasa komputer standar yang
Prelix, digunakan sebagai label klausa WHERE
AND harga>50000;
digunakan untuk berinteraksi
nama tabel di depan nama kolom. INNER JOIN &
dengan suatu sistem database –
Alias, untuk memberikan alias FUNCTION & GROUP UNION
SELECT * FROM tabel_A
sistem manajemen database WHERE
untuk tabel maupun kolom.
relasional. SQL digunakan untuk BY sampel data : kode_pelanggan = ‘dqlabcust03’
melakukan proses pengolahan Prelix pada nama kolom: scalar, untuk mengembalikan ms_item_warna UNION
database. nilai tunggal dari suatu input. SELECT * FROM tabel_B
SELECT ms_produk.kode_produk aggregate, berfungsi untuk
SAMPEL DATA FROM ms_produk; mengembalikan nilai tunggal
WHERE
kode_pelanggan = ‘dqlabcust03’;
Tabel ms_produk
dengan melakukan perhitungan.
Deskripsi : Alias pada kolom dan tabel: Perbedaan antara JOIN dan
Note : dokumentasi lengkap UNION
SELECT dapat dilihat di dokumentasi Ms_item_kategori
no_urut AS nomor, postgresql. Hasil penggabungan dengan
nama_produk AS nama perintah JOIN :
FROM ms_produk; CONTOH QUERY :
 Menggabungkan tabel secara
- 4 kolom Tabel students horizontal
SELECT *
- 10 rows FROM ms_produk t2;  Harus memiliki key kolom
Tabel ms_pelanggan ………………………………………...
Deskripsi : FILTERING
- 4 kolom Klausul where :
- 12 rows
SELECT *
Concat, untuk menggabungkan
FROM ms_produk
kedua kolom. Inner join, berfungsi untuk
WHERE nama_produk = ‘Tas
Travel Organize DQLab’; SELECT StudentID, menggabungkan kedua kolom
CONCAT(FirstName, LastName) yang memiliki key kolom-nilai
SELECT STATEMENT SELECT *
AS Name yang sama dalam dua tabel tsb. # kolom A dan E merupakan key
Mengambil seluruh kolom dari FROM ms_produk kolom.
FROM students; SELECT *
tabel : WHERE harga < 5000;
FROM ms_item_warna Hasil penggabungan dengan
Operand OR : Untuk menampilkan data selisih perintah UNION :
SELECT * INNER JOIN ms_item_kategori
nilai semester siswa dengan ouput
FROM ms_produk; OR, untuk memfilter dengan ON
angka 2 desimal.  Mengabungkan tabel secara
memenuhi salah satu kriteria. ms_item_warna.nama_barang=
veritikal
Mengambil beberapa kolom dari SELECT ms_item_kategori.nama_item;
 Tabel harus memiliki jumlah
tabel : SELECT * StudentID, kolom yang sama
FROM ms_produk ROUND(MAX(Semester1)-
SELECT no_urut, kode_pelanggan  Tidak perlu memiliki key kolom
WHERE MIN(Semester2),2) AS selisih
FROM ms_pelanggan; nama_produk=‘Gantungan Kunci FROM students
DQLab’ OR GROUP BY StudentID;
Membatasi jumlah row yang
nama_produk=’Flashdisk DQLab
ditampilkan :
64 GB’; Mengelompokkan data Union, berfungsi untuk
SELECT * menggunakan CASE…WHEN menggabungkan dua tabel tanpa
FROM ms_produk Operand AND : key kolom.
CASE
LIMIT n; AND, output harus memenuhi WHEN conditional 1 THEN result Mengabungkan kedua tabel
semua kriteria atau data tidak 1
Mengambil data tanpa duplikasi : SELECT * FROM tabel_A
diambil.
Menampilkan detail product dan  DESC = nilai terbesar ke terkecil 2. Hanya dapat memiliki satu kolom
GROUP BY & subscription dari data komsumen  ASC = nilai terkecil ke terbesar pada klausa SELECT
HAVING diatas dengan subqueris : 3. Untuk menghasilkan nilai lebih dari
Menentukan total transaksi konsumen:
Deskripsi tabel: satu hanya dapat digunakan dalam
SELECT customer_id, product,
SELECT DISTINCT operator IN.
 Tabel customer subscription_date
Customer_ID, sum(Count_Transaction)
Berisikan data konsumen yang FROM Subscription Jenis-jenis subquery :
total_trasaksi
berlangganan jaringan internet. WHERE customer_id IN
FROM data_retail 1. Single row subquery
Kolom = id, Name, addres, Gender, (
GROUP BY 1 2. Multiple row subquery
phone, email, DOB, SELECT customer_id
ORDER BY 2 DESC; 3. Correlated subquery
Rows = 50 baris. FROM Subscription
4. single row subquery
 Tabel product GROUP BY customer_id #GROUP BY 1 = GROUP BY Customer_ID - menghasilkan satu nilai output saja.
Menampilkan data product terkait HAVING COUNT (customer_id) > 1; #ORDER BY 2 = ORDER BY - Ditemukan dalam perintah WHERE
service yang diberikan penyadia jasa. ) ORDER BY customer_id ASC; total_transaksi - Operator pembanding =, <, >, <=,
Kolom = ID, product_name, price,
Menampilkan data konsumen diatas : Perintah ORDER BY dapat digunakan >=.
speed_limit, date active, end_active,
active SELECT untuk multiple kolom.
SELECT
Rows = 5 baris b.Name, b.addres, b.phone, a.product_id, Mengelompokkan dan mengurutkan data Customer_ID, Count_Transaction
 Tabel subscription a.subscription_date berdasarkan konsumen dan total FROM data_retail
menampilkan data langganan customer FROM Subscription a JOIN pembelian : WHERE Count_Transaction > (
dari pemilhan produk. ON customer b
SELECT AVG (Count_Transaction) AS
Kolom = id, customer_id, product_id, WHERE b.id IN SELECT
avg_transaction
subscription_date, end_date ( Customer_ID,
FROM data_retail
Rows = 56 baris SELECT customer_id Product,
);
 Tabel invoice FROM Subscription Sum(Count_Transaction) AS
Menampilkan data tagihan konsumen. GROUP BY customer_id total_pembelian_produk
 Subquery diatas bekerja untuk
Kolom = invoce_id, invoice_code, HAVING COUNT (customer_id) > 1) FROM data_retail
mencari nilai rata” dari
customer_id, invoince_date, ORDER BY b.id ASC ; GROUP BY Customer_ID, Product
count_transaction yang akan
product_id, total_price, pinalty ORDER BY 1,3 DESC;
Menentukan nilai pinalty dari nilai menjadi kriteria outer query.
Rows = 200 baris
max pembayaran lebih dari Rp. Note : perintah ORDER BY dapat
 Tabel payment
1000.000 : dilakukan untuk variabel yang tidak ada di Multiple row subquery
Data konsumen yang telah melakukan
dalam dataset – data yang telah di
pembayaran. SELECT - Menghasilkan lebih dari satu dari
transformasi menjadi variabel yang kita
Kolom = payment_id, invoice_id, product_id, MAX(total_price) total nilai output
inginkan.
payment_amount, payment_time FROM invoice - Digunakan dalam operator
Rows = 200 baris pembanding IN, ANY, ALL.
GROUP BY product_id SUBQUERY
HAVING digunakan untuk menggantikan HAVING MAX(total_price) > 1000000;
Menentukan nilai pinalty dari nilai Subquery, biasa disebut dengan query di SELECT
WHERE ketika menggunakan GROUP BY COUNT(DISTINCT customer_id)
yang datanya di aggregasi. min pembayaran kurang dari Rp. dalam query. Subquery memiliki dua
50.000 : bagian yaitu outer query dan inner Total_buyer_sepatu_tas
SELECT * FROM tabel1 SELECT query. Fungsi subquery : FROM data_retail
GROUP BY nama_kolom product_id, MIN(total_price) total WHERE product =’sepatu’
HAVING kondisi; 1. Dibandingkan dengan join, AND customer_id IN
FROM invoice
subquery lebih mudah (
GROUP BY product_id
Mencari daftar customer_id yang diinterpretasikan SELECT DISTINCT customer_id
HAVING MIN(total_price) < 50000;
melakukan perpindahan langganan 2. Subquery digunakan untuk FROM data_retail
menyederhanakan perintah SQL
produk : ORDER BY yang kompleks.
WHERE product = ‘tas’

SELECT customer_id Order by, berfungsi untuk mengurutkan );


FROM Subscription Aturan penggunaan subquery :
suatu data berdasarkan urutan nilai  Subquery diatas bertujuan untuk
GROUP BY customer_id terbesar atau terkecil. 1. Harus berada dalam tanda kurung mengambil data custumer yang
HAVING COUNT(customer_id) > 1;
membeli sepatu dan juga tas pada FROM data_retail 1. Produk yang dibeli adalah jaket
tabel yang sama. WHERE product = ‘Jaket’; (TRUE) dan rata-rata transaksi tidak
TRANSFORMASI DATA
lebih dari 1 juta (FALSE). TANGGAL
Correlated subquery Logika OR 2. Produk yang dibeli bukan
Pada correlated subquery, outer query Format data epoch merupakan data yang
merupakan jaket (FALSE) dan rata-
akan diproses terlebih dahulu kemudian Membandingkan dua nilai dengan memiliki format milliseconds. Maka,
rata transaksi lebih dari 1 juta
hasilnya akan dijadikan patokan untuk memenuhi saah satu kriteria/kondisi yang untuk mengubah data menjadi jumlah
(TRUE).
memproses inner query. diinginkan. detik, data perlu dibagi dengan 1000.
Operator XOR akan menghasilkan nilai 0 Contoh data epoch pada tabel data_retail:
SELECT
(FALSE) ketika:
a.product,
a.customer,
1. Produk yang dibeli adalah jaket
a.count_transaction
(TRUE) dan rata-rata transaksi lebih
FROM data_retail a
dari 1 juta(TRUE).
WHERE count_transaction >
2. Produk yang dibeli bukan
( Mencari data TRUE dengan kriteria produk merupakan Jaket (FALSE) dan rata- Perintah from_unixtime berfungsi untuk
SELECT AVG(count_transaction) AS jaket atau baju : rata transaksi kurang dari 1 juta mendapatkan informasi timestamp.
avg_transaction
SELECT (FALSE).
FROM data_retail b From_unixtime(Last_Transaction/1000)
WHERE a.product=b.product Customer_ID,
Product, Pemanfaatan logika di dalam where
Perintah untuk mendapatkan data tanggal
); average_transaction_amount, sebagai filter :
transaksi :
Produk = ‘Jaket’ OR Produk = ‘Baju’
Operator logika FROM data_retail; SELECT DISTINCT * date(from_unixtime(Last_Transaction/10
FROM data_retail 00)) date_transaction,
 Tipe data boolean Logika NOT WHERE Product = ‘Jaket’
Data boolean merupakan data benar AND untuk mendapatkan data bulan atau
salah yang disimbolkan dengan 1 atau Memfilter data dengan kriteria produk
bukan jaket : average_transaction_amount >= tahun, dapat menggunakan perintah
0. Pengkelompokan data dapat 1000000; EXTRACT :
dilakukan dengan klausa CASE…WHEN SELECT *
atau is eligible. FROM data_retail pemanfaatan logika di dalam EXTRACT(MONTH
WHERE NOT Product = ‘Jaket’; CASE…WHEN from(from_unixtime(Last_Transaction/10
Variabel is eligible dengan operator logika
: data yang dihasilkan dapat berupa 00))) month_transaction,
Logika XOR
TRUE/FALSE.
Logika AND EXTRACT(YEAR_MONTH
Logika XOR (exclusive-or) digunakan
SELECT DISTINCT from(from_unixtime(Last_Transaction/10
“AND” digunakan untuk membandingkan untuk membandingkan dua nilai dengan
skema penggunaan berikut : Customer_ID, 00))) year_month_transaction,
dua nilai yang telah memenuhi seluruh Product,
kondisi/ kriteria. Average_Transaction, Output :
Count_Transaction,
CASE
WHEN average_transaction > 2000000
AND Count_Transaction > 30
THEN 'Platinum Member'
Mencari customer dengan rata” pembelian SELECT WHEN average_transaction BETWEEN
lebih dari 1 jt : Customer_ID, Product, 1000000 AND 2000000 AND
average_transaction_amount Count_Transaction BETWEEN 20 AND 30
SELECT Product = ‘Jaket’ XOR THEN 'Glod Member'
Customer_ID, Product, average_transaction_amount >1000000 WHEN average_transaction < 1000000
average_transaction_amount, FROM data_retail; AND Count_Transaction < 20 THEN
Product = ‘Jaket’ 'Silver Member'
AND Operator XOR di atas menghasilkan nilai 1 ELSE 'Other Membership'
average_transaction_amount (TRUE) ketika: END as Membership
>=1000000 loyal_buyer FROM summary_transaction;

Anda mungkin juga menyukai