0% menganggap dokumen ini bermanfaat (0 suara)
110 tayangan21 halaman

Modul 5

Modul ini membahas tentang fungsi skalar dan fungsi agregat dalam SQL. Fungsi skalar mengembalikan nilai tunggal sedangkan fungsi agregat melakukan perhitungan pada sekelompok nilai. Modul ini menjelaskan berbagai jenis fungsi skalar seperti fungsi matematika, teks, dan contoh kode untuk mengimplementasikannya dalam SQL.

Diunggah oleh

Latifa Adilla
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)
110 tayangan21 halaman

Modul 5

Modul ini membahas tentang fungsi skalar dan fungsi agregat dalam SQL. Fungsi skalar mengembalikan nilai tunggal sedangkan fungsi agregat melakukan perhitungan pada sekelompok nilai. Modul ini menjelaskan berbagai jenis fungsi skalar seperti fungsi matematika, teks, dan contoh kode untuk mengimplementasikannya dalam SQL.

Diunggah oleh

Latifa Adilla
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/ 21

MODUL 5

MODUL 5

Pendahuluan
Buat jadi analis data itu belajarnya banyak banget. Kemarin aku baru saja kelar belajar tentang ‘Python’,
tapi kata Senja, aku masih perlu tahu soal SQL atau Structure Query Language. SQL ini nantinya akan
jadi tools  yang membantuku dalam menganalisis data perusahaan.
Apalagi, sebentar lagi perusahaan bakal merilis data penjualan tahun lalu. Jadi butuh sekali analis data
untuk mengolahnya menjadi data berbentuk agregasi, bukan lagi raw data. Mendengarnya saja aku masih
bingung.
 
“Senja, I really need your help!” kataku akhirnya setelah membaca isi modul.
“Oke, jadi kamu bingung di bagian apa? Biar saya bantu jelaskan,” ujar Senja.
Untungnya aku punya mentor sebaik Senja.

  Fungsi Scalar vs Fungsi Aggregate


“Bagian fungsi nih, Nja. Boleh kasih tahu perannya apa dalam pengolahan data?” Aku mulai bertanya.
“Oke, begini Aksara. Fungsi adalah metode yang digunakan untuk melakukan operasi data di database.
Operasi ini bisa berupa kalkulasi numerik seperti sum, count, avg, etc; atau operasi non-numerik seperti
string concatenations dan sub-strings. SQL Function dapat dibagi ke dalam 2 kategori, yaitufungsi scalar
dan fungsi aggregate.”
Penjelasan Senja mengundang pertanyaan baru di benakku.
 
“Hm, apa aja sih bedanya fungsi skalar dan fungsi aggregate?”
“Fungsi skalar dalam SQL digunakan untuk mengembalikan nilai tunggal (single value) dari suatu nilai
input yang diberikan, sedangkan fungsi agregat dalam SQL digunakan untuk melakukan perhitungan pada
sekelompok nilai dan kemudian mengembalikan nilai tunggal. Nah, biar lebih mudah dipahami mari kita
bahas dan praktekkan fungsi-fungsi dari kedua kategori ini.”
 
Aku mengangguk. “Oke, Nja. Sejauh ini paham. Aku coba pelajari lagi yah modulnya. Kalau ada yang
bingung, boleh kutanya lagi?”
“Silakan”

Fungsi Skalar Matematika


“Nja, ini aku nemu jenis fungsi lain. Fungsi skalar matematika. Ini apa yah?” sahutku sekali lagi.
“Kamu sudah belajar sampai fungsi skalar ya, Aksara. Oke  kalau begitu fungsi skalar pertama yang akan
kita bahas adalah fungsi skalar untuk numerik value. Fungsi ini umumnya digunakan jika kita ingin
melakukan operasi matematika di SQL secara cepat dan efektif. Di SQL sendiri ada banyak fungsi
matematika,” jelas Senja rinci.
 
“Memangnya fungsi-fungsi apa saja yang bisa dilakukan di SQL?”
“Untuk mengecek fungsi-fungsi apa saja yang bisa dilakukan di SQL, kita bisa membuka dokumentasi
fungsi SQL di sini: https://www.postgresql.org/docs/9.5/functions-math.html, untuk postgresql database
dan di sini: https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html, untuk mysql database.
Nah, sebagai bahan praktik kamu agar lebih paham kamu bisa coba beberapa fungsi saja yang umumnya
digunakan seperti ini,” ujar Senja sambil mengajakku menyimak isi tampilan layar laptopnya:

 
Untuk memudahkan pemahaman, aku diberikan Senja tabel dummy berisi nilai siswa semester 1 dan 2 di
suatu sekolah. Berikut contoh penggunaan fungsi skalar dengan menggunakan tabel dummy: 
Tabel: students

Fungsi Skalar Matematika - ABS()


Fungsi ABS( )
Syntax: 

SELECT ABS(ColumnName)  
FROM TableName; 

Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas dengan live code editor.
Output: 
 
Jawaban : SELECT StudentID, FirstName, LastName, Semester1, Semester2, ABS(MarkGrowth) AS
MarkGrowth FROM students;

Fungsi Skalar Matematika - CEILING()


Fungsi CEILING()
Syntax: 

SELECT CEILING(ColumnName)  
FROM TableName; 

 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

 Jawaban : SELECT StudentID, FirstName, LastName, CEILING(Semester1) AS Semester1,


CEILING(Semester2) AS Semester2,MarkGrowth FROM students;

Fungsi Skalar Matematika - FLOOR()


Fungsi FLOOR()
Syntax: 

SELECT FLOOR(ColumnName)  
FROM TableName; 

 
Contoh: 
Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

Jawaban : SELECT StudentID, FirstName, LastName, FLOOR(Semester1) AS Semester1,


FLOOR(Semester2) AS Semester2, MarkGrowth FROM students;

Fungsi Skalar Matematika - ROUND()


Fungsi ROUND()
Syntax: 

SELECT ROUND(ColumnName)  
FROM TableName; 

 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

 Jawaban : SELECT StudentID, FirstName, LastName, ROUND(Semester1,1) AS Semester1,


ROUND(Semester2,0) AS Semester2, MarkGrowth FROM students;

Fungsi Skalar Matematika - SQRT( )


Fungsi SQRT()
Syntax: 

SELECT SQRT(ColumnName) 
FROM TableName; 

 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

 Jawaban : SELECT StudentID, FirstName, LastName, SQRT(Semester1) AS Semester1, Semester2,


MarkGrowth FROM students;

Tugas Praktek
Tugas:
Gunakan fungsi MOD() untuk menghitung nilai sisa jika nilai Semester1 dibagi 2 dan fungsi EXP() untuk
menghitung nilai eksponensial dari nilai MarkGrowth. Gunakan kedua fungsi tersebut dalam satu
SELECT-Statement. 
 
Jika berhasil, berikut output tabel yang diperoleh: 

 
Jawaban : SELECT StudentID, FirstName, LastName, MOD(Semester1,2) AS Semester1 , Semester2,
EXP(MarkGrowth) FROM students;

Fungsi Text
“Aku sudah cukup paham soal fungsi skalar matematika, Nja. Thank you!”
“Sip, tapi jangan senang dulu, karena masih ada fungsi lain. Sekarang kita akan membahas tentang fungsi
skalar untuk text/string value. Fungsi ini digunakan jika kita ingin melakukan operasi pada text atau
karakter di SQL, misalnya, mengubah huruf kecil ke huruf besar, menghitung jumlah karakter dari text,
dll. Fungsi skalar text di SQL juga cukup banyak.”
 
Aku menarik napas panjang, kukira fungsi skalar hanya tadi saja.
“Jadi, aku bisa cek di mana untuk fungsi skalar text?”
“Sama seperti fungsi skalar matematika, kita juga bisa mengecek fungsi - fungsi skalar text di dokumentasi
postgresql: https://www.postgresql.org/docs/9.1/functions-string.html; dan dokumentasi
mysql: https://dev.mysql.com/doc/refman/8.0/en/string-functions.html.  Aku kirim ya link ini ke kamu,
Aksara.”
Aku segera mengecek kotak masuk emailku.
 
“Untuk  bahan praktik, kita akan mencoba beberapa fungsi saja yang sering digunakan saja, Aksara, yang
ini,” tambah Senja sembari menunjuk tabel fungsinya untukku:

  Fungsi Text - CONCAT( )


Fungsi CONCAT()
Syntax: 

SELECT CONCAT(ColumnName1, ColumnName2, ColumnNameN)  


FROM TableName; 

 
Contoh: 
Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

Jawaban : SELECT StudentID, CONCAT(FirstName, LastName) AS Name, Semester1, Semester2,


MarkGrowth FROM students;

Fungsi Text - SUBSTRING_INDEX( )


Fungsi Text SUBSTRING_INDEX()
Syntax: 

SELECT SUBSTRING_INDEX(column, delimiter, index to return)  


FROM TableName; 

Keterangan:
      column --> merupakan nama kolom yang akan dipecah text-nya,
      delimiter --> karakter atau gabungan beberapa karakter untuk pemecah text pada kolom bersangkutan,
     index_to_return --> indeks dari pecahan text yang akan diambil.
 
Contoh:

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

+-----------+---------------+
| StudentID | Name |
+-----------+---------------+
| 1 | Jose_Mohit |
| 2 | lala_karlina |
| 3 | Sultan_Hadi |
| 4 | jaya_usman |
| 5 | anjali_wijaya |
+-----------+---------------+

Di sini terlihat bagaimana mengambil pecahan text pertama (1) atau sub-text sebelum delimiter '@'. 
 Jawaban : SELECT StudentID, SUBSTRING_INDEX(Email, '@', 1) AS Name FROM students;

Fungsi Text - SUBSTR( )


Fungsi Text SUBSTR()
Syntax: 

SELECT SUBSTR(columnName, Start Index, Number of string to be extract)


FROM TableName; 

Keterangan:
     columnName --> nama kolom yang akan dicari substring-nya
     Start Index --> indeks dari text yang dimiliki (dimulai dari 1)
     Number of string to be extract --> jumlah karakter atau beberapa karakter yang akan diambil.
 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

Pada contoh ini bisa dilihat aku mengambil substring mulai pada karakter ke dua hingga karakter ke empat.
 Jawaban : SELECT StudentID, SUBSTR(FirstName, 2, 3) AS Initial FROM students;
Fungsi Text - LENGTH( )
Fungsi Text LENGTH()
Syntax: 

SELECT LENGTH(ColumnName)
FROM TableName; 

 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

 Jawaban : SELECT StudentID, FirstName, LENGTH(FirstName) AS Total_Char FROM students;

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
 
Contoh: 
Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

+-----------+-------------------------+-------------------------+
| StudentID | Email | New_Email |
+-----------+-------------------------+-------------------------+
| 1 | [email protected] | [email protected] |
| 2 | [email protected] | [email protected] |
| 3 | [email protected] | [email protected] |
| 4 | [email protected] | [email protected] |
| 5 | [email protected] | [email protected] |
+-----------+-------------------------+-------------------------+

Pada tabel ini terlihat bahwa semua email yang sebelumnya dengan domain yahoo telah berubah menjadi
gmail.
Jawaban : SELECT StudentID, Email, REPLACE(Email,'yahoo', 'gmail') AS New_Email FROM students;

Tugas Praktek
Tugas:
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.
Jika berhasil, berikut output tabel yang diperoleh:

 Jawaban : SELECT StudentID, UPPER(FirstName) AS FirstName, LOWER(LastName) AS LastName


FROM students;

Fungsi Aggregate
“Aksara, sepertinya aku lupa menunjukkan tabel fungsi aggregate padamu. Sebentar.”
Aku mengalihkan perhatianku dari layar laptop dan mendorong bangku mendekati Senja. “Ya?”
 
“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 SUM()
Syntax: 

SELECT SUM(ColumnName)  
FROM TableName; 

 
Contoh: 

Tugas:
Ketikanlah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

Jawaban : SELECT SUM(Semester1) AS Total_1, SUM(Semester2) AS Total_2 FROM students;


Fungsi Aggregate - COUNT()
Fungsi Aggregate COUNT()
Syntax: 

SELECT COUNT(ColumnName)  
FROM TableName; 

 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 

 Jawaban : SELECT COUNT(FirstName) AS Total_Student FROM students;

Fungsi Aggregate - AVG( )


Fungsi Aggregate AVG()
Syntax: 

SELECT AVG(ColumnName)  
FROM TableName; 

 
Contoh: 

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Output: 
 Jawaban : SELECT AVG(Semester1) AS AVG_1, AVG(Semester2) AS AVG_2 FROM students;

Tugas Praktek
Tugas:
Setelah memahami fungsi-fungsi sebelumnya, kali ini Senja memintaku untuk menggunakan
fungsi MIN() dan MAX() untuk menghitung nilai dari kolom Semester1 dan Semester2. Aku
menggunakan fungsi tersebut dalam satu SELECT-Statement.
Jika berhasil, berikut output tabel yang diperoleh:

Jawaban : SELECT MIN(Semester1) AS Min1, MAX(Semester1) AS Max1,MIN(Semester2) AS Min2,


MAX(Semester2) AS Max2 FROM students;

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.
 
Contoh:

Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Jawaban : SELECT province, COUNT(DISTINCT order_id) AS total_order, SUM(item_price) AS
total_price FROM sales_retail_2019 GROUP BY province;

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.
 
Contoh:
Tugas:
Ketiklah contoh yang diberikan pada baris di atas pada live code editor.
Jawaban : SELECT province,brand, COUNT(DISTINCT order_id) AS total_order,SUM(Item_price) AS
total_price FROM sales_retail_2019 GROUP BY province, 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: 

Tugas:
Ketikkan query di atas pada live code editor, jika berhasil maka akan menghasilkan output berikut:
 Jawaban : SELECT province, COUNT(DISTINCT order_id) AS total_unique_order,SUM(item_price) AS
revenue FROM sales_retail_2019 GROUP BY province;

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'.

Tugas:
Gantilah tanda _ _ _ di code editor dengan yang sesuai seperti yang dideskripsikan pada soal di atas.
 
Jika berhasil, tabel yang akan muncul adalah seperti berikut ini: 
 
Akhirnya selesai juga! Ini latihan modulku yang terakhir untuk materi hari ini. Berkat bimbingan Senja
yang mengkombinasikan penjelasan dan praktik, aku jadi lebih paham bagaimana melakukan operasi
numerik dengan fungsi agregat dan operasi text/string dengan fungsi skalar di SQL; serta bagaimana cara
penggunaannya dengan group by statement dan CASE… WHEN... statement.
“Ah, enggak sesusah yang kukira!” gumamku bersemangat.

 Jawaban : SELECT MONTH(order_date) AS order_month, SUM(item_price) AS total_price,

CASE

WHEN SUM(item_price) >= 30000000000 THEN 'Target Achieved'

WHEN SUM(item_price) <= 25000000000 THEN 'Less Performed'

ELSE 'Follow Up'

END as remark

FROM sales_retail_2019
GROUP BY MONTH(order_date);

Pendahuluan
Seperti dugaanku, setelah selesai memahami modul dan mempraktikkan latihan-latihannya dengan lancar,
aku akan diberi proyek pekerjaan oleh Senja.
Walaupun kadang menyebalkan karena bikin aku pulang telat, tapi ini caranya untuk mengajakku
berkontribusi bagi perusahaan. Aku harus lebih semangat!
 
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.
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.

  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.

 
Tabel: tr_penjualan

 
Jawaban : ## 1. Total jumlah seluruh penjualan (total/revenue).
SELECT SUM(total) as total
FROM tr_penjualan;
## 2. Total quantity seluruh produk yang terjual.
SELECT SUM(qty) as qty
FROM tr_penjualan;
## 3. Total quantity dan total revenue untuk setiap kode produk.
SELECT kode_produk, SUM(qty) as qty, SUM(total) as total
FROM tr_penjualan
GROUP BY kode_produk;

Proyek Pekerjaan - Analisis Penjualan Part 2


(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.

 
Tabel: tr_penjualan

 
Jawaban : ## 4. Rata - Rata total belanja per kode pelanggan.
SELECT kode_pelanggan, AVG(total) AS avg_total
FROM tr_penjualan
GROUP BY 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. */
SELECT kode_transaksi,kode_pelanggan,no_urut,kode_produk,nama_produk,qty,total,
CASE
WHEN total > 300000 THEN 'High'
WHEN total < 100000 THEN 'Low'
ELSE 'Medium'
END as kategori
FROM tr_penjualan;

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!
 

Anda mungkin juga menyukai