0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan50 halaman

Fungsi Text SQL

Dokumen tersebut membahas tentang fungsi REPLACE() untuk mengganti karakter atau string dalam sebuah kolom database, serta penggabungan tabel menggunakan key columns untuk memperoleh informasi dari dua tabel sekaligus."

Diunggah oleh

SRI
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 DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan50 halaman

Fungsi Text SQL

Dokumen tersebut membahas tentang fungsi REPLACE() untuk mengganti karakter atau string dalam sebuah kolom database, serta penggabungan tabel menggunakan key columns untuk memperoleh informasi dari dua tabel sekaligus."

Diunggah oleh

SRI
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 DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 50

Fungsi Text - REPLACE( )

Fungsi Text REPLACE()

Syntax: 

SELECT REPLACE(ColumnName, Character/String to be change, New


String/Character)
FROM TableName; 

Keterangan:

     ColumnName --> nama kolom yang akan diganti isi tiap record/barisnya berdasarkan
string/karakter tertentu

     Character/String to be change --> string/karakter yang dimiliki untuk diganti

     New String/Character --> string/karakter baru pengganti string/karakter sebelumnya

Gunakan fungsi UPPER() untuk mengubah kolom FirstName menjadi seluruhnya kapital dan gunakan
LOWER() untuk mengubah kolom LastName menjadi seluruhnya non-kapital. Gunakan kedua fungsi
tersebut dalam satu SELECT-Statement.
Fungsi Aggregate
 

“Seperti yang sudah dijelaskan bahwa fungsi aggregate ini digunakan untuk melakukan
perhitungan pada sekelompok nilai. Biar lebih jelas kita akan mempraktikkan penggunaan
fungsi aggregate di SQL dengan menggunakan fungsi - fungsi aggregate yang umum
digunakan. Tapi sebelumnya, kamu simak saja dulu tabel fungsinya ini.”
Fungsi Aggregate - SUM()

Fungsi Aggregate - COUNT()

Fungsi Aggregate - AVG( )


fungsi MIN() dan MAX() untuk menghitung nilai dari kolom Semester1 dan Semester2. Aku
menggunakan fungsi tersebut dalam satu SELECT-Statement.

Pengenalan GROUP BY
“Nja, kamu perlu bilang kalau kita akan mengolah data penjualan tahun lalu bukan?”

“Iya, ada apa?”

“Kalau sudah ada datanya, kita pasti butuh mengelompokkannya dan menghitungnya
berdasarkan penjualan setiap provinsi maupun dikelompokkan per bulan. Kalau kayak begitu
kasusnya, pakai SQL bagaimana caranya ya?”

“Gambaranmu bagus sekali, Aksara. Saya bantu jelaskan ya. Untuk mengelompokkan data di
SQL kita menggunakan GROUP BY Statement. GROUP BY statement akan
mengelompokkan data yang bernilai sama ke dalam satu group, dan dengan menggunakan
fungsi aggregate seperti (COUNT, MAX, MIN, SUM, AVG) kita bisa melakukan agregasi
untuk untuk setiap group atau kelompok yang terbentuk. Biar lebih jelas, coba pelajari
penulisan syntax-nya,” jelas Senja.
 

Aku pun menyimak syntax yang diberikan:

Hal penting yang perlu diperhatikan adalah: 

1. GROUP BY digunakan dengan SELECT, artinya kolom yang digunakan di GROUP BY


statement, juga perlu ditempatkan di SELECT.
2. GROUP BY ditempatkan setelah WHERE, tetapi jika tidak menggunakan WHERE maka
langsung ditempatkan setelah FROM. 
3. Jika menggunakan ORDER BY, maka GROUP BY ditempatkan sebelum ORDER BY. 

 “Apakah kita bisa menggunakan group by untuk mengelompokkan data menggunakan 2


kriteria atau 2 kolom, Nja?” tanyaku penasaran.

  “Tentu saja bisa. Group by bisa dilakukan dengan single column ataupun multiple column.
Seperti ini contohnya:”

 Group by Single Column, data dikelompokkan menggunakan kriteria dari satu kolom saja,
misalnya mengelompokkan data berdasarkan provinsi saja. 
 Group by Multiple Column, data dikelompokkan menggunakan kriteria dari dua kolom atau
lebih, misalnya mengelompokkan data berdasarkan province dan brand.

Group by Single Column


Fungsi Group by Single Column memastikan data dapat dikelompokkan menggunakan
kriteria dari satu kolom saja, misalnya mengelompokkan data berdasarkan provinsi saja.

Group by Single Column


Fungsi Group by Single Column memastikan data dapat dikelompokkan menggunakan
kriteria dari satu kolom saja, misalnya mengelompokkan data berdasarkan provinsi saja.
Group by Single Column
Fungsi Group by Single Column memastikan data dapat dikelompokkan menggunakan
kriteria dari satu kolom saja, misalnya mengelompokkan data berdasarkan provinsi saja.

Group by Multiple Column


Dengan fungsi Group by Multiple Column, data dapat dikelompokkan menggunakan kriteria
dari dua kolom atau lebih, misalnya mengelompokkan data berdasarkan province dan brand.

 
Fungsi Aggregate dengan Grouping
“Tambahan lagi, Aksara. Kamu masih ingatkan fungsi agregasi yang kita pelajari dan
praktikkan sebelumnya? Pada fungsi itu kita belum menggunakan group by sehingga hasil
SUM dan COUNT kita adalah hasil SUM dan COUNT dari seluruh baris yang ada di tabel
data penjualan.”

“Ada data penjualannya kah, Nja? Biar lebih mudah membayangkan dan
mempraktikkannya,” usulku.

Senja membuka data penjualan perusahaan tahun lalu untukku. Wow!

“Kalau begitu, kita praktik langsung saja. Sekarang coba kamu gunakan fungsi agregasi dan
GROUP BY untuk menghitung total penjualan dari setiap provinsi di tahun 2019, dan kita
bandingkan dengan hasil fungsi agregasi tanpa menggunakan group by,” pinta Senja.

Contoh aggregate dengan grouping: 


Penggunaan CASE … WHEN….
 “Wah, terima kasih Senja, aku sudah mulai paham menggunakan fungsi aggregate di SQL.
Tapi aku mau tanya deh, kalau aku diminta untuk menambahkan kolom rekomendasi atau
remark dari hasil agregasi data, misalnya nilai penjualan bulan Maret 2019 lebih dari 30M,
maka diberikan rekomendasi/remark “Target Achieved”, kalau kurang diberi remark “Follow
Up”. Bagaimana melakukannya di SQL ya? 

“Itu mudah saja, Aksara. Itu bisa kamu lakukan dengan CASE - statement di SQL. CASE -
statement ini sama dengan IF - THEN - ELSE di pemrograman pada umumnya. Syntax dari
CASE – statement seperti ini. Coba lihat.”

CASE - Statement ditempatkan sesudah SELECT, berikut syntax-nya secara lengkap :

SELECT ColumnName1, ColumnName2,  


CASE 
   WHEN condition1 THEN result1  
   WHEN condition2 THEN result2  
   WHEN conditionN THEN resultN  
   ELSE result  
END as alias  
FROM TableName; 

CASE-statement akan mengevaluasi kondisi yang sudah ditentukan, dimulai dari condition1,
dan akan mengembalikan hasil (result1), jika condition1 terpenuhi (TRUE). Jika tidak, maka
condition2 akan dievaluasi, dan akan mengembalikan result2 jika condition2 terpenuhi, dst.
Apabila tidak ada kondisi yang terpenuhi, maka result pada bagian ELSE yang akan
dikembalikan. 

Nah, silahkan praktikkan penggunaan CASE-Statement untuk membuat remark pada data
aggregasi penjualan. 

 
Tugas Praktek
Tugas:

Dengan menggunakan data sales_retail_2019,  buatlah syntax query yang menggunakan


fungsi skalar MONTH() untuk mengubah order_date dari tanggal ke bulan, fungsi
aggregate SUM() untuk menjumlahkan kolom item_price.

Tambahkan kolom remark menggunakan CASE… WHEN… statement. Jika


sum(item_price) >= 30.000.000.000, maka remark-nya “Target Achieved”; Jika
sum(item_price) <= 25.000.000.000 maka remark-nya “Less performed”; Selain itu, beri
remark “Follow Up”.

Proyek Pekerjaan - Analisis Penjualan Part 1


Aku pun membuka email proyek dari Senja sambil menyeruput boba milk tea favoritku.

 
Aksara, saya senang dengan perkembanganmu belakangan ini. Saya mau minta tolong agar
kamu melakukan analisis penjualan di suatu store. Adapun laporan yang diminta sebagai
berikut:

1. Total jumlah seluruh penjualan (total/revenue).


2. Total quantity seluruh produk yang terjual.
3. Total quantity dan total revenue untuk setiap kode produk.

(lanjutan ...)
Saya mau minta tolong agar kamu melakukan analisis penjualan di suatu store. Adapun
laporan yang diminta sebagai berikut:

4. Rata - Rata total belanja per kode pelanggan.


5. Selain itu,  jangan lupa untuk menambahkan kolom baru dengan nama ‘kategori’ yang
mengkategorikan total/revenue ke dalam 3 kategori: High: > 300K; Medium: 100K -
300K; Low: <100K.
Hasil Belajarku
Aku bangga dengan diriku sendiri! Dari modul Fundamental SQL Using FUNCTION and
GROUP BY yang aku pelajari, aku telah memahami dan mampu mempraktikkan:

 Penggunaan fungsi skalar dan fungsi aggregate dalam operasi string dan numerik di
SQL database
 Penggunaan GROUP BY dalam mengelompokkan data dan memahami konsep
menggabungkan GROUP BY dengan fungsi aggregate
 Penggunaan CASE Statement untuk struktur pengambilan keputusan.
 Mengerjakan mini project yang merupakan integrasi keseluruhan materi dan tentunya
materi-materi pada modul-modul sebelumnya untuk menyelesaikan persoalan bisnis.

Dengan kemampuan ini, aku lebih pede untuk mengolah data dengan SQL. Keterampilan ini
sendiri adalah 60% aktivitas awal yang akan dilakukan seorang analis. Keep Fighting!
Tabel pertama: ms_item_warna
“Oke, contoh tabel pertama yang akan kita gunakan sebagai bahan latihan adalah tabel
ms_item_warna seperti terlihat berikut ini,” bimbing Senja sambil memperlihatkan layar
laptopnya padaku:

“Tabel ini terdiri dari dua kolom yang berisi informasi nama buah atau sayuran dengan
warnanya, dan memiliki delapan baris data,” ujar Senja.

“Lalu, bagaimana langkah selanjutnya?” tanyaku menunggu.

“Selanjutnya, jika permasalahan kita adalah ingin mengetahui informasi tidak hanya
mengenai warna tetapi juga jenis/kategori dari setiap nama barang apakah tergolong sayuran
atau buah, maka kita tidak dapat memperoleh informasi tersebut jika hanya berdasarkan
tablel ms_item_warna. Oleh karena itu, kita perlu menghubungkan tabel tersebut dengan
tabel lain yang berisi informasi tersebut, yaitu tabel ms_item_kategori.”

Menggabungkan Tabel dengan Key Columns


Saatnya  mempraktekkan penggabungan tabel ms_item_kategori dan ms_item_warna
menggunakan key columns.

Cobalah tuliskan query berikut di code editor:

 
Jika query yang ditunjukkan dengan benar diketikkan maka akan mendapatkan hasil berikut
setelah menekan tombol .

Dapat dilihat hasil dari penggabungan dua tabel tersebut yaitu berupa tabel baru dengan
empat kolom dan enam baris data. Perlu diketahui bahwa penggabungan ini bersifat
sementara artinya tabel asli di database tidak mengalami perubahan, dan tabel baru hasil
penggabungan ini juga tidak serta merta tersimpan di database.  

Penjelasan Query Penggabungan Tabel


Penggabungan dua tabel menjadi satu tabel baru menggunakan query SELECT pada subbab
sebelumnya dilakukan dengan cara berikut:

 menuliskan dua nama tabel yang akan digunakan dengan dipisahkan operator koma
(,).
 menuliskan pasangan key columns dengan penghubung operator sama dengan (=) di
bagian filter atau kondisi.

Berikut adalah gambaran detil syntax penggunaan cara di atas:


 

Cara join seperti ini disebut dengan cara join menggunakan operator koma.

Penjelasan Hasil Penggabungan Tabel


Sejauh ini aku tidak menemukan masalah yang signifikan, tapi ketika berusaha
menggabungkan tabel aku masih kesulitan. Untungnya Senja masih di sampingku.

“Nja, aku mau nanya. Jika aku amati, penggabungan tabel menghasilkan enam baris data.
Sedangkan di kedua tabel asal masing-masing memiliki delapan baris data. Lalu, kenapa bisa
berkurang dua baris data?” tanyaku penasaran.

“Untuk menjawab pertanyaan tersebut, cobalah perhatikan gambar berikut,” jawab Senja
lugas langsung memberi penjelasan lengkap bersama visualnya
Dua tabel di bagian atas yaitu tabel ms_item_kategori dan tabel ms_item_warna
merupakan tabel sumber data, dan bagian bawah adalah tabel hasil penggabungan dari kedua
tabel tersebut.

Dari tabel hasil penggabungan terlihat bahwa baris data yang muncul hanyalah baris data
yang isi datanya terdapat di kedua key columns, dan data yang isinya cocok untuk kedua tabel
jumlahnya hanya enam dari total delapan baris data yang ada. Sedangkan baris data yang
berisi belimbing, jamur, apel dan daun bawang, tidak terdapat di kedua tabel, sehingga baris
data ini akan di-exclude dan tidak akan muncul di tabel hasil penggabungan.

Penjelasan Proses Penggabungan Tabel


Mari diperhatikan kembali gambar di bawah ini untuk penjelasan proses penggabungan.
Panah berwarna magenta menunjukkan proses pencocokan dan penggabungan data. Sebagai
contoh: Baris data pertama dengan isi “bayam” pada key column nama_item (tabel
ms_item_kategori), akan mencari isi yang sama di key column nama_barang (tabel
ms_item_warna), dan ditemukan pada baris kedua kemudian dihubungkan menjadi satu
baris di tabel baru hasil penggabungan.

Pencocokan dengan pencarian ini berdasarkan bagian kondisi (conditional clause) pada query
yang ditandai dengan warna kuning berikut.

Setelah seluruh data ditemukan dengan kondisi ini, dan jika tidak menentukan spesifik kolom
maka seluruh kolom data dari kedua tabel akan dimunculkan dengan isi/baris data yang sama
dan terdapat di kedua key column digabungkan menjadi satu baris pada tabel baru. 

Isi data yang ditandai dengan warna merah adalah data yang tidak memiliki pasangan
sehingga tidak bisa digabungkan, dan dengan demikian tidak memiliki data gabungan pada
hasil akhir.

Cara pencocokan dan penggabungan disebut dengan INNER JOIN - dimana isi dari key
column kedua tabel harus cocok satu sama lain baru dapat digabungkan.

Penjelasan Senja selalu lengkap seperti biasa. Aku mengintip buku catatan dari sudut mataku,
tak terasa sudah sekitar tiga halaman habis oleh coretan tanganku. Malam ini harus kurapikan
nih!
“Satu lagi, Aksara. Saya perhatikan kamu suka sekali mencatat, jangan kelewat soal ini: jika
kamu biasa bekerja dengan Excel, proses ini hampir menyerupai penggunaan fungsi vlookup.
Jadi harusnya sudah terbiasa.”

Bagaimana jika urutan Tabel diubah?


Jika akan mengubah urutan tabel di bagian FROM pada query inner join, maka hanya urutan
kolom saja yang berubah tetapi isi data dan jumlah data tidak berubah.

Mari lihat contohnya dengan mengganti query yang sebelumnya, yaitu:

Menjadi query seperti ini

Ketikkan query yang terakhir ini pada code editor dan jalankan dengan menekan tombol
. Jika berhasil maka akan menampilkan hasil berikut.

Terlihat jumlah data yang dihasilkan tetap 6 baris data, namun dengan urutan kolom yang
berbeda.

Dimana dua kolom pertama adalah dari tabel ms_item_warna, dan dua kolom berikutnya
dari tabel ms_item_barang. Hal ini sesuai dengan urutan nama tabel yang diketikkan setelah
FROM
Menggunakan Prefix Nama Tabel
Seperti yang dijelaskan sebelumnya, jika akan menggunakan wildcard (*), dan tidak
menentukan spesifik nama kolom yang akan dimunculkan di bagian SELECT, maka secara
default urutan kolom dimulai dengan kolom dari tabel yang dinyatakan pertama di bagian
FROM. Akan tetapi, bisa juga memanfaatkan wildcard dengan menambahkan prefix nama
tabel, dimana dengan merinci prefix nama tabel ini, dimungkinkan untuk menentukan urutan
kolom dari tabel mana yang muncul duluan.

Jika lupa dapat mengacu kembali ke Modul: Fundamental SQL Using SELECT
Statement, Chapter: Prefix dan Alias.

Sebagai contoh, jika akan menggabungkan kedua tabel, dengan menyatakan tabel
ms_item_warna terlebih dahulu di bagian FROM, tetapi yang ingin dimunculkan kolomnya
di awal hasil adalah dari yang ms_item_kategori, maka querynya akan menjadi sebagai
berikut.

Jika query yang diketikkan sesuai dengan yang ditunjukkan dan berhasil dijalankan maka
akan diperoleh hasil berikut ini:

Terlihat urutan kolom yang muncul adalah dari tabel ms_item_kategori terlebih dahulu.

Penggabungan Tanpa Kondisi


Sesuai dugaanku. Aku kembali menemukan hal yang membingungkan. Dan, tampaknya hari
ini Senja memang sudah mendedikasikan waktunya untuk mengajariku karena
(beruntungnya!) Senja masih tepat di sebelahku.
“Nja, hehehe. Sorry mau ganggu lagi. Bagaimana kalau aku ingin menggabungkan tabel
tanpa ada kondisi? Apakah tetap bisa memakai metode ini?”

Senja memicingkan matanya pada layar laptop yang kutunjuk sebelum menjawab.
“Pertanyaan bagus. Penjelasan dan praktek yang kita dilakukan pada materi sebelumnya
adalah penggabungan dua tabel dengan menggunakan kondisi, yaitu terdapat data yang sama
pada key kolom dari kedua tabel. Akan tetapi, memang benar, dalam beberapa case di real
problem, sering kali terdapat permasalahan tertentu dimana kita ingin menggabungkan tabel
tanpa ada kondisi. Proses penggabungan ini juga dapat dilakukan dengan metode koma dan
tanpa menggunakan kondisi relasi antar kolom.”

Aku mencoba mencerna penjelasan Senja. Sebelum aku sempat memahami semuanya. Senja
sudah mengajakku untuk melihat contoh.

“Berikut adalah contoh query dari penggabungan seperti itu.”

“Terlihat pada query kita hanya menyertakan nama dua tabel yang akan diambil datanya, tapi
tidak ada informasi kondisi bagaimana kedua tabel tersebut berelasi satu dengan yang lainnya
melalui key column. Lalu apa hasilnya?” tanya Senja retoris.

“Kamu hanya butuh untuk mengetik  query ini pada code editor dan jalankan, jika berhasil
dengan baik maka akan muncul hasil dengan enam puluh empat baris data seperti berikut.”

Aku memperhatikan dengan saksama. Jangan sampai ada yang terlewat!

+-----------+----------+-------------+--------------+
| nama_item | kategori | nama_barang | warna |
+-----------+----------+-------------+--------------+
| bayam | sayuran | apel | merah |
| belimbing | buah | apel | merah |
| duku | buah | apel | merah |
| durian | buah | apel | merah |
| gandum | buah | apel | merah |
| jamur | sayuran | apel | merah |
| jambu air | buah | apel | merah |
| jeruk | buah | apel | merah |
| bayam | sayuran | bayam | hijau |
| belimbing | buah | bayam | hijau |
| duku | buah | bayam | hijau |
| durian | buah | bayam | hijau |
| gandum | buah | bayam | hijau |
| jamur | sayuran | bayam | hijau |
| jambu air | buah | bayam | hijau |
| jeruk | buah | bayam | hijau |
| bayam | sayuran | daun bawang | hijau |
| belimbing | buah | daun bawang | hijau |
| duku | buah | daun bawang | hijau |
| durian | buah | daun bawang | hijau |
| gandum | buah | daun bawang | hijau |
| jamur | sayuran | daun bawang | hijau |
| jambu air | buah | daun bawang | hijau |
| jeruk | buah | daun bawang | hijau |
| bayam | sayuran | duku | kuning pekat |
| belimbing | buah | duku | kuning pekat |
| duku | buah | duku | kuning pekat |
| durian | buah | duku | kuning pekat |
| gandum | buah | duku | kuning pekat |
| jamur | sayuran | duku | kuning pekat |
| jambu air | buah | duku | kuning pekat |
| jeruk | buah | duku | kuning pekat |
| bayam | sayuran | durian | kuning |
| belimbing | buah | durian | kuning |
| duku | buah | durian | kuning |
| durian | buah | durian | kuning |
| gandum | buah | durian | kuning |
| jamur | sayuran | durian | kuning |
| jambu air | buah | durian | kuning |
| jeruk | buah | durian | kuning |
| bayam | sayuran | gandum | coklat |
| belimbing | buah | gandum | coklat |
| duku | buah | gandum | coklat |
| durian | buah | gandum | coklat |
| gandum | buah | gandum | coklat |
| jamur | sayuran | gandum | coklat |
| jambu air | buah | gandum | coklat |
| jeruk | buah | gandum | coklat |
| bayam | sayuran | jambu air | merah |
| belimbing | buah | jambu air | merah |
| duku | buah | jambu air | merah |
| durian | buah | jambu air | merah |
| gandum | buah | jambu air | merah |
| jamur | sayuran | jambu air | merah |
| jambu air | buah | jambu air | merah |
| jeruk | buah | jambu air | merah |
| bayam | sayuran | jeruk | oranye |
| belimbing | buah | jeruk | oranye |
| duku | buah | jeruk | oranye |
| durian | buah | jeruk | oranye |
| gandum | buah | jeruk | oranye |
| jamur | sayuran | jeruk | oranye |
| jambu air | buah | jeruk | oranye |
| jeruk | buah | jeruk | oranye |
+-----------+----------+-------------+--------------+

Aku menggumam mengerti. Terlihat banyak sekali hasil yang keluar, ini dikarenakan setiap
baris data pada kedua tabel akan dihubungkan satu sama lain - tanpa ada hubungan.

Jumlah enam puluh empat baris data ini adalah hasil perkalian dari jumlah data dari kedua
tabel, dimana masing-masing memiliki delapan baris data. Cara menggabungkan kedua
tabelseperti ini disebut dengan mekanisme cross join.

Quiz: Berapa Jumlah Baris Hasil “Join Tanpa Kondisi” Berikut?


Perhatikan dua table berikut ini

Jika kedua table tersebut digabungkan tanpa kondisi dengan query berikut

SELECT * FROM ms_item_kategori, ms_item_warna;

berapa jumlah baris data gabungan yang dihasilkan?80

Kesimpulan
Bahasa SQL diciptakan untuk sistem database relasional atau RDBMS. Dan aspek relasional
inilah yang menjadi fitur paling penting dan unggul, dimana beberapa tabel dapat
digabungkan menjadi satu sumber data baru.

Cara menggabungkan antar tabel disebut sebagai mekanisme join. Pada bab ini telah
dicontohkan bagaimana dua tipe join, yaitu inner join dan cross join diterapkan dengan dua
contoh tabel sederhana.

Inner join terjadi jika kedua tabel digabungkan melalui kolom kunci atau key column. Syarat
penggabungan adalah dimana Isi data dari key column tabel yang satu harus dapat
dicocokkan dengan isi data dari key column tabel yang lain.

Sedangkan cross join terjadi dari penggabungan tabel tanpa kondisi, dan menghasilkan
seluruh penggabungan data seperti proses perkalian.

Untuk bab ini, inner join maupun cross join dilakukan dengan cara menggunakan operator
koma dan pengkondisian where. Pada bab selanjutnya, akan terlihat penggunaan inner join
dengan menggunakan keyword INNER JOIN … ON.
 abel tr_penjualan dan tabel ms_produk
Tak kusangka penggunaan INNER JOIN ini banyak sekali langkah per langkahnya.
Untungnya aku sudah diberi modul oleh Senja, kalau tidak, buku catatanku bisa habis diisi
oleh materi ini saja.

“Setelah kita menggunakan tabel ms_item_warna dan ms_item_kategori, sekarang mari kita
gunakan tabel tr_penjualan dan tabel ms_produk yang ada di-database, sehingga kita bisa
lebih paham mengenai penerapan konsep JOIN di real case,” pinta Senja.

“Oke, Nja.”

”Mari kita lihat isi dari tabel tr_penjualan. Silakan ketikkan query berikut pada code editor.”

Jika dijalankan dan tidak ada kesalahan pada sintaks, maka hasilnya akan terlihat sebagai
berikut.
 

Syntax INNER JOIN


Aku menerima modul baru dari Senja. Saat kubuka, bab baru yang menyapaku adalah
“Syntax INNER JOIN”.

“Sudah tahu kan bahwa tujuan JOIN adalah menggabungkan dua atau lebih tabel yang
berbeda di dalam database. Nah, JOIN ini hanya bisa dilakukan apabila tabel - tabel
tersebut memiliki key kolom yang sama. Di SQL, terdapat beberapa tipe JOIN yaitu : INNER
JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, dan SELF JOIN. Setiap tipe join memiliki
tujuan dan hasil query yang berbeda. Pada metode INNER JOIN, baris dari kedua atau lebih
tabel akan dibandingkan untuk mengecek baris - baris mana saja yang cocok satu sama lain
berdasarkan kondisi JOIN yang ditentukan,” jelas Senja fasih. 

“Memang JOIN itu sendiri ada berapa tipe sih, Nja?” “Untuk materi ini, kita akan ke tipe
pertama, yaitu INNER JOIN. Namun demikian, pembahasan akan makin mendalam dengan
memberikan konsep pengantar terlebih dahulu agar memudahkan dalam memahami tipe-
tipe JOIN lainnya.”
“Oh oke, Nja.”

Syntax INNER JOIN:

Penggunaan prefix pada tabel_1.nama_kolom dan tabel_2.nama_kolom ditujukan agar


terdapat kejelasan (clarity) kolom pada tabel mana yang dijadikan acuan dalam proses
INNER JOIN. Tentunya, penggunaan prefix ini ini sangat bermanfaat jika ingin
menggabungkan beberapa tabel. Untuk penjelasan lebih detail, coba ingat kembali
penggunaan prefix dan alias, yang telah dipelajari pada modul "Fundamental SQL with
SELECT statement chapter Prefix dan Alias".

Jika masing-masing tabel tersebut dianalogikan sebagai dua himpunan maka proses INNER
JOIN ekivalen dengan INTERSECTION (IRISAN) antara dua himpunan.

Proses INNER JOIN memiliki konsep penggabungan untuk records pada kedua tabel yang
bernilai sama.
Tugas Praktek: Menggunakan INNER JOIN (1/3)
Sejauh ini aku belum memiliki pertanyaan berarti dan semoga saja tidak ada. Dalam hati
kuberdoa kelancaran pembelajaran ini juga sampai ke kuis dan tugasnya, hehehe.

“Kita lanjut penjelasannya ya, Aksara,” ujar Senja menarikku kembali ke materi.

“Nah, sebelumnya kan kita sudah menerapkan penggunaan … WHERE …; dari perintah
SELECT … dan operator koma, untuk penggabungan tabel ms_item_warna dan
ms_item_kategori. Selanjutnya, ini kita akan menggunakan klausa INNER JOIN … ON …;
untuk menggabungkan kedua ms_item_warna dan ms_item_kategori berdasarkan sintaks
INNER JOIN yang telah dijelaskan sebelumnya.”

Silakan ketikkan query berikut pada code editor

Jika dijalankan dan tidak ada kesalahan pada penulisan query-nya, maka hasilnya akan
terlihat sebagai berikut.

Hasil yang diperoleh dengan penggunaan SELECT … FROM … INNER JOIN … ON …;


adalah sama dengan penerapan SELECT … FROM … WHERE …;.

 Tugas Praktek: Menggunakan INNER JOIN (2/3)


“Oke, Aksara. Silakan dipraktikkan pada code editor untuk menggabungkan tabel
tr_penjualan dan ms_produk dan menampilkan seluruh kolom dari kedua tabel.”

 
Aku mengecek lagi beberapa coretan penting materi tadi dan mulai mengerjakan kode-nya.
Jika dijalankan berikutlah hasilnya

Memahami Proses dan Hasil Query dengan INNER JOIN


“Lanjut ya, Aksara. Kita ngejar supaya materi ini bisa kamu kuasai hari ini juga,” ujar Senja.

Aku pun kembali serius menekuri layar laptop dan isi modul.

“Perhatikan tabel hasil query pada tugas praktek sebelumnya, apakah perbedaan antara tabel
sebelum penggabungan dengan INNER JOIN dan setelah penggabungan?”

“Sekarang seluruh kolom dari kedua tabel berada di satu tabel dan berisi seluruh kolom -
kolom dari kedua tabel. Jadi, Aku juga dapat dengan mudah mengidentifikasi nama produk
dari setiap kode produk yang dibeli oleh customer.”
“Iya, benar sekali, Aksara. Sekarang perhatikan lebih lanjut dan bandingkan antara kolom
kode_produk pada hasil query dengan INNER JOIN di atas, dengan kolom kode_produk
pada tabel ms_produk. Menurutmu apa yang berbeda?”

“Hm, aku tidak menemukan prod-06 di tabel hasil query, padahal di tabel ms_produk
terdapat data prod-06 yaitu pulpen multifunction + laser DQLAB.”

“Tepat sekali, selanjutnya bandingkan dengan tabel tr_penjualan, apakah kamu menemukan
data prod-06 di tabel tr_penjualan?” tanya Senja kembali menguji kepemahamanku.Dan,
untungnya aku tak pernah mengantuk saat mendengar penjelasan Senja sepanjang materi.
Kalau iya, habislah sudah!

“Tidak ada transaksi dengan kode_produksi prod-06 di tabel tr_penjualan.   Sepertinya


aku mulai paham. INNER JOIN akan mencocokkan key kolom tabel tr_penjualan dengan
key kolom ms_produk, jika value dari key kolom sama - sama ada di kedua tabel , maka
baris itu akan dikembalikan sebagai hasil query dan membentuk satu tabel yang berisi seluruh
kolom dari kedua tabel, sedangkan jika value key kolom hanya terdapat di satu kolom, maka
baris ini tidak akan ditampilkan. prod-06 ada di tabel di ms_produk tetapi tidak ada di data
penjualan sehingga saat penggabungan tabel dengan INNER JOIN, data prod-06 dari tabel
ms_produk tidak akan muncul di hasil query.”

Bibir Senja melengkung. Aku bisa mendapati senyum puas Senja atas jawabanku. Senyum
apresiasi dari Senja selalu mampu menghangatkan hatiku. Senangnya! Walau sederhana tapi
bermakna.

“Tepat Sekali, Aksara. Sepertinya kamu sudah paham dengan penggunaan INNER JOIN.
Silahkan lanjutkan  materinya di modul. Oh iya, pada bagian SELECT, kamu boleh memilih
kolom mana saja yang ingin kamu tampilkan setelah kedua tabel di-JOIN.”

Syntax INNER JOIN – Memilih Beberapa Kolom Untuk


Ditampilkan
“Satu lagi, Aksara. Sementara itu, jika kita ingin menampilkan beberapa kolom saja dari tabel
hasil penggabungan, maka syntax SQL dari INNER JOIN dinyatakan sebagai berikut ini.”
Bagian query

SELECT tabel1.nama_kolom1, tabel1.nama_kolom2, ...,


tabel2.nama_kolom2, ....
FROM tabel1

menghendaki pemilihan kolom mana saja dari kedua tabel yang akan digabungkan. Disini
diperlukan penggunaan prefix nama tabelnya.

Selanjutnya, bagian query

INNER JOIN tabel2

digunakan untuk menggabungkan tabel1 dengan tabel2.

Akhirnya, bagian query

ON tabel_1.nama_kolom1 = tabel2.nama_kolom1;

adalah acuan penggabungan tabel1 dan tabel2 berdasarkan kolom yang memiliki tingkat
kecocokan yang tinggi. Kedua kolom dengan tingkat kecocokan yang tinggi pada masing-
masing tabel disebut juga dengan key column. 

Catatan:

Perlu diperhatikan jika menampilkan kolom dengan nama yang sama di kedua tabel, maka
pada bagian Select, tidak bisa hanya mengetikkan nama kolom saja, tetapi juga harus
didahului oleh prefix nama tabel dimana kolom itu berasal untuk menghindari error karena
ambiguitas," Senja mengingatkanku sekali lagi.
Tugas Praktek: Menggunakan INNER JOIN (3/3)
“Oke, semua dariku sudah. Sekarang silakan dipraktikkan pada code editor untuk
menggabungkan tabel tr_penjualan dan ms_produk dengan kolom yang ditampilkan dari
tabel tr_penjualan adalah kode_transaksi, kode_pelanggan, kode_produk, qty. Untuk
tabel ms_produk tampilkan kolom nama_produk dan harga." 

Aku mengangguk mantap. Senja sudah membekaliku sampai di sini. Ini saatnya aku mandiri.

Kemudian aku membentuk kolom total yang merupakan hasil perkalian setiap baris pada
kolom harga di tabel ms_produk dengan kolom qty di tabel tr_penjualan.

"Tabel hasil penggabungan haruslah membentuk kolom-kolom dengan urutannya adalah


kode_transaksi, kode_pelanggan, kode_produk, nama_produk, harga, qty, dan
total," lanjut Senja lagi mengingatkan.

Kesimpulan
Pada chapter INNER JOIN ini kita telah mempelajari bagaimana menggabungkan dua tabel
berdasarkan key column-nya.
 Pada tahap awal kita menggunakan INNER JOIN untuk menggabungkan keseluruhan
kolom yang dimiliki oleh kedua tabel tersebut. 
 Selanjutnya, kita menerapkan INNER JOIN dengan menggunakan prefix nama tabel
untuk memilih kolom-kolom mana saja yang akan ditampilkan pada tabel hasil
penggabungan.

Untuk chapter selanjutnya kita akan menggabungkan tabel dengan menggunakan UNION.

Pendahuluan
Aku sedang mengerjakan kuis-kuis kecil ketika Senja datang membawa dua gelas minuman
hangat. Dari aromanya bisa kutebak kalau itu kopi.

“Kopi saya. Ini teh susu buatmu.” Pagi di ruangan kantor yang masih sejuk-sejuk dingin
memang paling pas minum yang anget! Dan, Senja masih ingat kalau aku enggak ngopi.

“Hari ini masih lanjut belajarnya, Aksara. Masih semangat kan?” tanya Senja sambil
menyeruput kopinya lagi.

“Tentang apa materinya?”

“Saya melihat prosesmu bagus. Jadi kita sudah bisa lanjut ke bagian yang lebih kompleks,
yaitu mengakses data dalam database dengan SQL (Structure Query Language).” Senja
mengatakannya dengan begitu santai, padahal aku yang mendengarnya pun sudah
mengerutkan alis.

“Sip, aku tak mungkin menolak bukan? Hehehe,” jawabku terkekeh.

“Pembelajaran kita hari ini akan dimulai dengan studi kasus praktik jadi learning by doing.
Ini ada data berupa analisis hasil penjualan suatu store. Akan tetapi ketika kita coba cek di
database, terdapat 2 tabel penjualan, yaitu :

 Tabel A berisi data transaksi untuk kode transaksi ‘tr-001’ sampai ‘tr-003’, dan
 Tabel B berisi data data transaksi untuk kode transaksi ‘tr-004’ sampai ‘tr-006’," buka
Senja. 

“Lalu, bagaimana cara yang cepat dan efektif untuk membuat analisis dari kedua tabel
tersebut menggunakan SQL? Apakah bisa menggunakan metode JOIN seperti yang
kupelajari sebelumnya?”

“Mari kita selesaikan bersama.”

Penggabungan hasil SELECT secara “Vertikal”


“Untuk kasus seperti ini kita perlu menggunakan metode UNION agar kedua tabel tadi
menjadi satu tabel,” jelas Senja.

“UNION itu apa dan bagaimana mengoperasikannya?” tanyaku penuh rasa ingin tahu.

“UNION adalah operator SQL yang digunakan untuk menggabungkan hasil dari 2 atau lebih
SELECT - statement secara “Vertikal”, dengan catatan,” Senja membuka buku catatannya
dan menggesernya padaku untuk dicerna.

 Setiap hasil dari SELECT statement yang akan digabungkan (UNION) memiliki
jumlah kolom yang sama
 Kolom tersebut juga harus memiliki tipe data yang sama, dan
 Kolom tersebut memiliki urutan posisi yang sama.

Berikut format syntax-nya:

“Biar lebih mudah dipahami, mari kita praktekkan dengan tabel yang ingin dianalisis ini.
Kamu bisa perhatikan ya langkah per langkahnya, Aksara.”

Aku menekuri layar laptop menunggu Senja beraksi memperlihatkan contoh.

Tabel yang Akan Digabungkan


“Oke, pertama - tama mari kita SELECT seluruh kolom dari tabel_A.” Aku memperhatikan
intruksi pertama Senja.

“Selanjutnya kita SELECT seluruh kolom dari tabel_B,” tambah Senja.

Dan, hasilnya seperti ini :


 

Sesuai dengan syarat untuk penggabungan dengan UNION yang telah dijelaskan tadi bahwa:

 jumlah kolom tabel_A dan tabel_B adalah sama


 kolom-kolom pada tabel_A dan tabel_B memiliki tipe data yang sama, dan
 kolom-kolom pada tabel_A dan tabel_B memiliki urutan posisi yang sama.

Melalui pengecekan pada tabel_A dan tabel_B pastikan bahwa ketiga syarat penggabungan
dengan UNION yang dinyatakan di atas terpenuhi. Langkah ini kita lakukan sebelum
melanjutkan pada praktek berikutnya menggunakan UNION. 

Menggunakan UNION
Kedua tabel_A dan tabel_B sudah memiliki jumlah kolom yang sama, dan juga urutan posisi
kolom juga sama, jadi bisa langsung menggabungkan kedua kolom tersebut dengan
menambahkan UNION. 

Ketikkanlah kode berikut di code editor:

Jika query yang ku ketikkan benar dan kemudian dijalankan tabel penggabungan yang ku
peroleh ditujukkan sebagai berikut :
 

Menggunakan UNION dengan Klausa WHERE

Aku bertanya pada Senja, “Terus, kalo ada kondisi WHERE, syntaxnya bagaimana?
Misalnya aku hanya ingin menggabungkan tabel yang isinya data penjualan untuk kode
produk prod-04 saja?”

”Mudah saja, tinggal tambahkan WHERE di kedua SELECT-statement, seperti berikut ini,”

Jika query-nya dengan benar dituliskan dan kemudian dijalankan maka akan diperoleh:

 
Tugas Praktek:

Lakukanlah hal yang sama dengan yang dicontohkan, akan dipilih kode_pelanggan =
'dqlabcust03' sebagai kondisinya. 

Jika query-nya diketikkan dengan benar maka tabel penggabungan yang tampil dengan
kondisi kode_pelanggan = 'dqlabcust03' adalah:

Menyelaraskan (Conforming) Kolom


Aku diam sebentar untuk menyimak. Tapi, masih ada pertanyaan yang mengganjal di
benakku.

“Hmm, aku masih bingung, Nja. Kebetulan data penjualan ini berada di kedua tabel A & B
jumlah kolom dan posisinya sama serta nama kolomnya sama. Bagaimana kalau posisi kolom
dari kedua tabelnya tidak sama? Apa tidak bisa di-UNION-kan?”

“Tentu saja bisa, kamu bisa menyelaraskan kolom dari kedua tabel di SELECT-statement.
Mari kita contohkan dengan data dari tabel berikut ini.”

tabel Customers

dan tabel Supplier

Jumlah kolom dari kedua tabel tersebut sama - sama 7 kolom, tetapi kolom posisi kolom
ContactName dari kedua tabel tidak sama. Di tabel Customer, posisi kolom ContactName
berada di Kolom ke - 3 sedangkan di tabel supplier berada di kolom ke-2.

Jika langsung menggabungkan keduanya, tanpa menyelaraskan kolom hasilnya akan sebagai
berikut:
 

Tentunya, ini hasil UNION yang tidak diinginkan, oleh karena itu, urutkan posisi kolom
tersebut di SELECT-Statement dan juga pilih kolom yang ingin digabungkan, sehingga tidak
perlu semua kolom dari kedua tabel di-UNION-kan, seperti berikut ini :

SELECT CustomerName, ContactName, City, PostalCode 


FROM Customers
UNION
SELECT SupplierName, ContactName, City, PostalCode
FROM Suppliers;

Jika terdapat perbedaan nama kolom antara SELECT-statement pertama dan SELECT-
statement kedua, maka secara default akan digunakan nama kolom dari SELECT-statement
yang pertama.

Menggunakan UNION dan Menyelaraskan Kolom-


Kolomnya.
Senja menyerahkan tugas praktik sederhana untuk menguji materi ini. Sekilas kubaca
pertanyaan dan perintahnya tidak sulit. Baiklah, mari langsung terapkan ilmunya!

Ketikkan syntax query di atas pada Code Editor, untuk melihat hasil dari penggabungan tabel
(UNION) dengan menyelaraskan kolom. 

Jika berhasil maka hasil nya akan seperti berikut ini:


 

Perbedaan antara UNION dan JOIN


Setelah mengerjakan tugas, aku jadi teringat materiku sebelumnya mengenai JOIN.
Sebenarnya kalau dipikir-pikir fungsi keduanya tampak mirip. Jadi, kapan waktu yang tepat
untuk memaki salah satu darinya? Aku memutuskan menanyakan hal ini pada Senja.

“ Nja, aku sudah paham bagaimana menggunakan UNION tetapi aku masih belum mengerti
bedanya dengan metode JOIN, bukankah keduanya sama – sama untuk menggabungkan data
dari 2 tabel? Lalu, kapan aku perlu pakai JOIN dan kapan aku perlu pakai UNION?”

“Memang benar UNION dan JOIN digunakan untuk menggabungkan data dari dua atau lebih
tabel. Tapi yang membedakan adalah bagaimana tabel - tabel itu digabungkan. Kita
menggunakan JOIN ketika akan menggabungkan tabel secara horizontal, sehingga hasil join
akan memuat kolom - kolom dari kedua atau lebih tabel yang digabungkan. Berikut
gambaran penggabungan tabel dengan metode JOIN,” Senja menampilkan contoh tabel di
layar laptop.
Pada metode JOIN, penggabungan dilakukan berdasarkan key/kolom tertentu yang terdapat
di tabel-tabel yang akan digabungkan dan key/kolom ini memiliki nilai yang saling terkait.
Seperti yang terlihat pada gambar, Kolom A dan Kolom E merupakan key/kolom yang saling
terkait sehingga kedua tabel dapat digabungkan dengan mencocokan nilai dari kedua kolom
ini. Proses JOIN tidak dapat dilakukan jika tidak terdapat key/kolom yang saling terkait di
kedua atau lebih tabel yang akan digabungkan.

Untuk UNION seperti yang sudah dijelaskan, digunakan ketika ingin menggabungkan tabel
secara secara vertikal yaitu menggabungkan baris/row dari dua atau lebih tabel. Tidak seperti
JOIN, untuk penggabungan dengan UNION, tidak diperlukan key/kolom yang saling terkait
tetapi UNION mensyaratkan bahwa jumlah kolom dari tabel - tabel yang akan
digabungkankan adalah sama dan berada diposisi yang sama pula. Berikut ilustrasi
penggabungan dengan UNION:
Pada proses penggabungan UNION, tidak terdapat penambahan kolom tetapi jumlah
baris/rows yang akan bertambah. 

Kesimpulan
Pada chapter UNION ini telah dipelajari bagaimana menggabungkan dua tabel secara
vertikal (bertambah barisnya). Tentunya ada syarat yang harus dipenuhi oleh kedua tabel
yang digabungkan dengan UNION, yaitu:

 Setiap hasil dari SELECT statement yang akan digabungkan (UNION) memiliki
jumlah kolom yang sama
 Kolom tersebut juga harus memiliki tipe data yang sama, dan
 Kolom tersebut memiliki urutan posisi yang sama.
Selain itu, mempelajari bagaimana penyelerasan kolom sehingga record/baris yang
ditampilkan pada tabel hasil penggabungan memiliki arti.

Perbedaan mendasar dari JOIN dan UNION adalah JOIN menggabungkan 2 tabel atau lebih
berdasarkan baris yang saling berelasi/terkait sedangkan UNION menggabungkan 2 tabel
secara vertikal. 

Project INNER JOIN


Dalam database, terdapat tabel ms_pelanggan yang berisi data - data pelanggan yang
membeli produk dan tabel tr_penjualan yang berisi data transaksi pembelian di suatu store.

Suatu hari, departemen marketing & promotion meminta bantuan untuk meng-query data-
data pelanggan yang membeli produk Kotak Pensil DQLab, Flashdisk DQLab 32 GB, dan
Sticky Notes DQLab 500 sheets.

Buatlah query menggunakan tabel ms_pelanggan dan tr_penjualan untuk mendapatkan data
- data yang diminta oleh marketing yaitu kode_pelanggan, nama_customer, alamat.

NB: Gunakan SELECT DISTINCT untuk menghilangkan duplikasi, jika diperlukan.

Tabel ms_pelanggan

Tabel tr_penjualan
 

Project UNION
Siapkan data katalog mengenai mengenai nama - nama produk yang dijual di suatu store.
Data tersebut akan digunakan dalam meeting untuk mereview produk mana saja yang akan
dilanjutkan penjualannya dan mana yang akan di diskontinu.
Siapkan hanya data produk dengan harga di bawah 100K untuk kode produk prod-1 sampai
prod-5; dan dibawah 50K untuk kode produk prod-6 sampai prod-10.

Saat mengecek data produk di database, terdapat 2 tabel yang sama - sama berisi data
katalog, yaitu :

Tabel ms_produk_1

Tabel ms_produk_2

 
Hasil Belajarku
Wah, tidak terasa aku telah menyelesaikan modul Fundamental SQL Using INNER JOIN
and UNION. Selama belajar dengan modul ini, aku sudah dapat memahami dan mampu
mempraktikkan:

 Penggabungan dua tabel dengan menggunakan WHERE clause dan teknik cross join.
 Penggabungan dua tabel relasi dengan menggunakan INNER JOIN.
 Penggabungan dua tabel secara vertikal dengan menggunakan UNION.
 Mengerjakan mini project yang merupakan integrasi keseluruhan materi dan tentunya
materi-materi pada modul-modul sebelumnya untuk menyelesaikan persoalan bisnis.

Dengan kemampuan ini, aku lebih pede untuk mengolah data dengan SQL. Keterampilan ini
sendiri adalah 60% aktivitas awal yang akan dilakukan seorang analis. Keep Fighting!
Untuk apa Having digunakan dalam query
HAVING digunakan untuk menggantikan WHERE ketika menggunakan Group BY 
yang datanya di aggregasi.

Secara umum HAVING digunakan setelah melakukan GROUP BY berikut sintaks yang
digunakan:

SELECT nama_kolom
FROM nama_table
GROUP BY nama_kolom
HAVING kondisi

Contoh penggunaan HAVING


Untuk penggunaan HAVING pada data yang ada pada bab sebelumnya, kita akan mencari
customer_id yang melakukan perpindahan
subscription pada table subscription. 

Teman-teman silahkan mengikuti query dibawah ini

dan coba dieksekusi dan menampilkan hasil resultnya

+-------------+
| customer_id |
+-------------+
| 1 |
| 7 |
| 12 |
| 20 |
| 31 |
| 40 |
+-------------+

Dari hasil resultnya ada 6 konsumen yang mengubah langgganannya, dari query tersebut
hanya menampilkan customer_id yang di grouping dengan customer_id yang memiliki
jumlah lebih dari 1.

Menampilkan Konsumen yang berubah berlangganan


Selanjutnya kita akan menampilkan perubahan yang dilakukan konsumen tersebut.

Sekarang teman-teman melengkapi query yang ada di code editor dengan menampilkan:
1. customer_id
2. product_id
3. subscription_date

Menampilkan detail konsumen


Sekarang kita coba menggabungkan ilmu yang sudah ada sebelumnya.

Kita menggunakan JOIN untuk mendapatkan data dari table customer.

Tugas Praktek

Isikan bagian yang kosong dengan melakukan JOIN table subscription dan customer
dengan menggabungkan
customer_id dari table subscription dan id dari table customer

 
Penggunaan Fungsi MAX pada Having
Dalam klausa kondisi Having dapat menggunakan fungsi MAX sebagai filter hasil dari
aggregasi dari GROUP BY.

Penggunaannya sama dengan fungsi max dengan yang digunakan pada Select secara umum,
tetapi ini digunakan untuk melakukan filter data.

Sekarang coba query dibawah ini:


Query diatas akan menampilkan daftar nilai maksimum  pada kolom tersebut yang
disesuaikan sesuai dengan kolom yang digrouping. Sekarang kita dapat menambahkan di
baris berikutnya tentunya dengan menggunakan fungsi Max untuk mendapatkan jumlah
total_price yang berada di atas 1.000.000.

Tugas Praktek

Tambahkanlah baris berikutnya (baris ketiga) setelah kamu menuliskan kedua baris di atas.
Perintah di baris ketiga ini ditujukan untuk menentukan nilai maksimal dari pinalty.
Gunakanlah filter untuk nilai MAX pinalty di atas 30000

Mini Quiz
Sekarang untuk lebih mengerti tentang penggunaan Having, mari kita coba selesaikan soal
berikut. 

Lakukan query untuk dapat mengeluarkan product_id, rata-rata nilai pinalty dan jumlah
customer_id yang di group by berdasarkan product_id
yang memiliki jumlah customer_id diatas nilai 20.
Hasil yang diharapkan akan seperti dibawah ini:

+------------+--------------------+-------+
| product_id | AVG(pinalty) | total |
+------------+--------------------+-------+
| 10002 | 26136.363636363636 | 86 |
| 10003 | 31500 | 51 |
| 10004 | 52000 | 34 |
+------------+--------------------+-------+

Penutup
Congratulation! 

Kali ini kamu sudah berhasil mendapatkan ilmu pengetahuan baru dan juga mempelajari
materi yang baru lagi mengenai Having serta contoh penggunaannya. 

Kesimpulan yang bisa didapatkan adalah : 

1. Menggunakan fungsi SELECT untuk menampilkan data-data yang butuh diketahui


informasinya. 
2. Menggunakan fungsi Group by dan Join untuk memahami penggunaan Having. 
3. Menghitung nilai Max, Min dan Avg pada penerapan fungsi Having. 

Tetap semangat belajar data science di DQLab, karena akan selalu ada modul-modul baru
yang akan dirilis. 

Jangan lupa tunjukkan semangat belajarmu dengan mengupload sertifikat yang kamu
dapatkan ke LinkedIn atau bangun portfolio datamu dan juga tag ke social media DQLab. 

Anda mungkin juga menyukai