Modul 6: Column Function dan Grouping - informatika-itts/modul-perancangan-basis-data GitHub Wiki
Fungsi Group
Fungsi kelompok (group) melakukan operasi pada dua atau lebih baris data dan memberikan satu hasil per group. Tipe-tipe fungsi group yang bisa digunakan: AVG, COUNT, MAX, MIN, SUM.
Fungsi COUNT
Fungsi COUNT digunakan untuk menghasilkan nilai jumlah data (baris) dari sekelompok data tabel maupun view. Sintaksis (cara penulisan) dari penggunaan fungsi group :
SELECT [DISTINCT] {*, column [alias] group_function(column)}
FROM table
[WHERE condition(s)]
[GROUP BY column]
Contoh untuk mencari jumlah total dari employee adalah :
SELECT count(*) AS total_employee
FROM employee;
Fungsi AVG dan SUM
Fungsi AVG digunakan untuk menghasilkan group nilai rata-rata sekelompok nilai dari sebuah field numerik.
SELECT AVG(nama_field)
FROM nama_tabel;
Contoh untuk mencari gaji (salary) rata-rata dari employee adalah.
SELECT AVG(salary) AS avg_salary
FROM employee;
Fungsi SUM ini digunakan untuk menghasilkan nilai total jumlah sekelompok dari sebuah kolom.
SELECT SUM(nama_field)
FROM nama_tabel;
Contoh untuk mencari jumlah total semua gaji (salary) dari employee :
SELECT sum(salary) AS sum_salary
FROM employee;
Fungsi MIN dan MAX
Fungsi MIN digunakan untuk menghasilkan nilai terendah dari sekelompok data dalam sebuah kolom.
SELECT MIN(nama_field)
FROM nama_tabel;
Contoh mencari gaji terendah dari employee :
SELECT min(salary) AS min_salary
FROM employee;
Fungsi MAX digunakan untuk menghasilkan nilai tertinggi dari sekelompok data dalam sebuah kolom.
SELECT MAX(nama_field)
FROM nama_tabel;
Contoh mencari gaji tertinggi dari employee :
SELECT max(salary) AS max_salary
FROM employee;
Mengelompokkan Data dengan GROUP BY
Perintah yang digunakan untuk mengelompokan beberapa data pada perintah SELECT.
SELECT nama_kolom, agregasi(nama_kolom)
FROM (nama_tabel)
GROUP BY nama_kolom;
Contohnya:
- Mencari banyak employee tiap-tiap department.
SELECT dept_id, count(*) AS employee_count
FROM employee
GROUP BY dept_id
- Mencari rata-rata gaji employee tiap-tiap department.
SELECT dept_id, AVG(salary) AS avg_salary
FROM employee
GROUP BY dept_id;
Klausa HAVING
Fungsi HAVING berkaitan dengan GROUP BY dan AGREGASI. biasanya digunakan untuk menentukan kondisi tertentu pada GROUP BY dan kondisi tersebut berkaitan dengan fungsi agregasi. Fungsi ini memiliki kemiripan dengan WHERE dalam penggunaannya. HAVING digunakan dalam SQL karena WHERE tidak dapat digunakan dengan fungsi agregasi.
SELECT atribut
FROM nama_tabel
GROUP BY atribut
HAVING fungsi_agregasi;
Fungsi Karakter/String
Contoh mengambil department dan jumlah employee yang berada di department “Sales"
SELECT dept_id, count(*) as number_employee
FROM employee
GROUP BY dept_id
HAVING (dept_id) = 'Sales';
Fungsi Bilangan
Contohnya mencari department dan rata-rata gaji dari department yang memiliki rata-rata gaji lebih dari 150.000.
SELECT dept_id, AVG(salary) avg_salary
FROM employee
GROUP BY dept_id
HAVING AVG(salary) >150000;
Fungsi Tanggal
Fungsi tanggal merupakan fungsi untuk mengambil sebagian data dari kolom bertipe DATE dan TIMESTAMP. Sebagai contoh, kita bisa menggunakan fungsi YEAR() untuk mengambil bagian tahun. Contohnya:
SELECT YEAR(CURRENT_TIMESTAMP) AS Tahun_skrg;
SELECT YEAR(GETDATE()) AS Tahun_skrg; #
SELECT MONTH(CURRENT_TIMESTAMP) AS Bulan_skrg;
SELECT MONTH(GETDATE()) AS Bulan_skrg;
SELECT DAY(CURRENT_TIMESTAMP) AS Tgl_skrg;
SELECT DAY(GETDATE()) AS Tgl_skrg;
TUGAS
Download database berikut jika database praktikum modul 4 kalian hilang : https://opensource.catkay.com/down/project/mysql/12esciadw0i1-wd13fdgv
-
Tampilkan rata-rata jumlah pembelian dari pembeli_id berangka ganjil dengan rentang id 10 hingga 50 dari tabel pembelian.
-
Tampilkan 10 id_produk, judul_produk, dan total produk yang dibeli berdasarkan masing-masing id_produk dari tabel produk dengan jumlah_pembelian dari tabel pembelian (clue : LEFT JOIN)
-
Tampilkan rata-rata produk dan nilai tertinggi dari jumlah_pembelian dari tabel pembelian berdasarkan penjualan pada bulan Oktober 2023 saja.