• Tidak ada hasil yang ditemukan

Fungsi Agregat Pada MySQL

N/A
N/A
Protected

Academic year: 2021

Membagikan "Fungsi Agregat Pada MySQL"

Copied!
9
0
0

Teks penuh

(1)

Fungsi Agregat pada MySQL

Fungsi Agregat pada MySQL

Kali ini aku akan sedikit menjelaskan penggunaan fungsi agregat dalam MySQL. Fungsi Kali ini aku akan sedikit menjelaskan penggunaan fungsi agregat dalam MySQL. Fungsi agregat adala fungsi yang bekerja terhadap suatu group, terdiri dari :

agregat adala fungsi yang bekerja terhadap suatu group, terdiri dari :

1. Count 1. Count

Count digunakan

Count digunakan untuk untuk menghitung jumlah menghitung jumlah record/baris dari suatu tabel.record/baris dari suatu tabel. select count(*) from

select count(*) from nama_tabel;nama_tabel; Contoh :

Contoh :

- menampilkan jumlah mahasiswa yang ada dalam tabel mahasiswa, select count(*) from - menampilkan jumlah mahasiswa yang ada dalam tabel mahasiswa, select count(*) from mahasiswa;

mahasiswa;

- menampilkan jumlah penerbit, select count(*) from penerbit; - menampilkan jumlah penerbit, select count(*) from penerbit;

2. Sum 2. Sum

Sum digunakan

Sum digunakan untuk menghituuntuk menghitung jumlah dari sekumpulan kng jumlah dari sekumpulan kolom dari suatu tabel.olom dari suatu tabel. select sum(kolom) from nama_tabel;

select sum(kolom) from nama_tabel; C

Coonnttooh h : : mmeennaammppiillkkaan n ttoottaal l bbuukkuu sseelleecct t ssuumm((JJmmll__bbuukkuu) ) ffrroom m bbuukkuu;;

3. Avg 3. Avg

Avg (average) digunakan untuk mendapatkan nilai rata-rata dari kolom tertentu pada suatu Avg (average) digunakan untuk mendapatkan nilai rata-rata dari kolom tertentu pada suatu tabel.

tabel.

select avg(kolom) from nama_tabel; select avg(kolom) from nama_tabel; C

Coonnttooh h : : mmeennaammppiillkkaan n rraattaa--rraatta a ttoottaal l niillaaiin sseelleecct t aavvgg((nniillaaii) ) ffrroom m nniillaaii;;

4. Max 4. Max

Max digunakan untuk mendapatkan nilai terbesar dari sekumpulan nilai suatu kolom dari Max digunakan untuk mendapatkan nilai terbesar dari sekumpulan nilai suatu kolom dari suatu tabel.

suatu tabel.

select max(kolom) from nama_tabel; select max(kolom) from nama_tabel; Contoh :

Contoh :

- menampilkan jumlah buku terbanyak, select max(Jml_buku) from buku; - menampilkan jumlah buku terbanyak, select max(Jml_buku) from buku;

(2)

5. Min

Min digunakan untuk mendapatkan nilai terkecil dari sekumpulan nilai suatu kolom dari suatu tabel.

select min(kolom) from nama_tabel;

Contoh :

- menampilkan jumlah buku terbanyak, select max(Jml_buku) from buku;

6. Mengkombinasikan fungsi agregat dengan join dan klausa group :

- menampilkan total buku per penerbit.

select sum(Jml_buku) as 'Jumlah_buku', Nama_penerbit from buku b right join penerbit p on  b.Kode_penerbit = p.Kode_penerbit group by p.Kode_penerbit, p.Nama_penerbit;

- menampilkan total judul buku per penerbit yang lebih besar dari 2.

select count(b.Kode_penerbit) as 'Total_judul_buku', Nama_penerbit from buku b right join  penerbit p on b.Kode_penerbit = p.Kode_penerbit where Jml_buku > 2 group by

(3)

Menggabungkan Teks di MySQL

Contents

1. 1 Pendahuluan

2. 2 CONCAT dan CONCAT_WS 3. 3 Contoh Penggunaan CONCAT 4. 4 Contoh Penggunaan CONCAT_WS

Pendahuluan

Walau kelihatannya sepele, penggabungan teks atau string di MySQL sering menimbulkan kebingungan. Hal ini disebabkan karena MySQL harus menggunakan function sedangkan  pada beberapa produk database lain cukup menggunakan operator plus (+) atau ampersand 

(&).

Function-function yang digunakan untuk menggabungkan teks di MySQL adalah concat dan concat_ws. Berikut adalah penjelasan kedua function tersebut dan contoh penggunaannya.

CONCAT dan CONCAT_WS

1. CONCAT: adalah fungsi yang digunakan untuk menggabungkan satu atau lebih teks yang diberikan.

CONCAT(teks1, teks2, ...)

2. CONCAT_WS: adalah fungsi yang digunakan untuk menggabungkan satu a tau lebih teks dengan tambahan pemisah (separator) antar teks yang digabungkan.

CONCAT(pemisah, teks1, teks2, ...)

Contoh Penggunaan CONCAT

1. Menggabungkan kata "Kampung", spasi dan "Rambutan". SELECT CONCAT("Kampung", " ", "Rambutan");

(4)

2. Menggabungkan kata "Produk : " dan field "nama_produk " dari table "ms_produk ".

SELECT CONCAT("Produk : ", nama_produk) FROM ms_produk;

Contoh Penggunaan CONCAT_WS

(5)

SELECT CONCAT_WS("-", "Kampung", "Rambutan")

2. Menggabungkan field "kode_produk " dan "nama_produk " dengan pemisah ", ". SELECT CONCAT_WS(",

(6)

Name Description

AVG() Return the average value of the argument

BIT_AND() Return bitwise and BIT_OR() Return bitwise or BIT_XOR() Return bitwise xor

COUNT(DISTINCT) Return the count of a number of  different values

COUNT() Return a count of the number of rows returned

GROUP_CONCAT() Return a concatenated string MAX() Return the maximum value MIN() Return the minimum value

STD() Return the population standard deviation

STDDEV() Return the population standard deviation

SUM() Return the sum

VARIANCE() Return the population standard variance

Untuk memudahkan pemahaman bagaimana fungsi GROUP BY dan HAVING digunakan, kita akan menggunakan contoh data di MySQL. Buatlah tabel nilai yang menyimpan data nilai mahasiswa, strukturnya sebagai berikut:

Colu mn Type Comment nim varchar( 10) Nim mahasiswa nama varchar( 30) Nama mahasiswa

(7)

Colu mn Type Comment matku l varchar( 20) Nama Matakuliah nilai int(3) Nilai

mahasiswa

Selanjutnya isi tabel tersebut dengan beberapa data. Bagi yang ga mau repot bikin, ini sudah disiapkan perintah untuk bikin tabel dan mengisi datanya dalam bentuk file .sql. Silahkan downloadnilai.sql.

Berikut ini beberapa contoh persoalan yang dapat diselesaikan dengan fungsi GROUP BY dan HAVING.

Contoh Kasus #1. Tampilkan rata-rata nilai dari seluruh mahasiswa.

Untuk menyelesaikannya tidak perlu menggunakan GROUP BYkarena yang diminta adalah seluruh mahasiswa. Untuk mendapatkan rata-rata nilai, kita dapat menggunakan fungsi

AVG(). Berikut ini query untuk kasus tersebut. SELECT AVG(nilai) as rata_rata FROM nilai; Berikut ini hasil dari query di atas.

+---+ | rata_rata | +---+ | 79.6800 | +---+

Contoh Kasus #2. Tampilkan rata-rata nilai untuk setiap mahasiswa

Karena yang diminta adalah rata-rata untuk setiap mahasiswa, maka kita harus menggunakan GROUP BY untuk mengelompokkan rata-rata berdasarkan field tertentu. Query dan hasilnya kurang lebih sebagai berikut:

SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim ; +---+---+---+

| nim | nama | rata_rata | +---+---+---+ | 0911500101 | ADI | 82.0000 | | 0911500102 | IDA | 81.0000 | | 0911500103 | EDI | 80.6000 | | 0911500104 | INA | 70.4000 | | 0911500105 | ANI | 84.4000 | +---+---+---+

(8)

Contoh Kasus #3. Tampilkan nilai terbesar dan terkecil untuk setiap mahasiswa.

Query untuk menyelesaikan kasus ketiga di atas sebenarnya sama saja dengan yang

sebelumnya. Perbedaannya hanya pada fungsi agregat yang digunakan untuk menampilkan nilai terbesar dan terkecil yaitu MAX() dan MIN(). Berikut ini query dan hasil query-nya.

SELECT nim, nama, MAX(nilai) as terbesar, MIN(nilai) as terkecil FROM nilai GROUP BY nim ;

+---+---+---+---+ | nim | nama | terbesar | terkecil | +---+---+---+---+ | 0911500101 | ADI | 90 | 65 | | 0911500102 | IDA | 90 | 70 | | 0911500103 | EDI | 88 | 60 | | 0911500104 | INA | 80 | 50 | | 0911500105 | ANI | 92 | 68 | +---+---+---+---+

Contoh Kasus #4. Tampilkan rata-rata nilai yang didapat mahasiswa untuk setiap matakuliah

Cukup jelas bahwa pada kasus ini, mirip dengan kasus kedua di atas, namun

 pengelompokkan data berdasarkan matakuliah, bukan berdasarkan mahasiswa. Querynya kurang lebih sebagai berikut:

SELECT matkul, AVG(nilai) as rata_rata FROM nilai GROUP BY matkul; +---+---+ | matkul | rata_rata | +---+---+ | ALGORITMA | 84.4000 | | KALKULUS | 62.6000 | | PBO | 82.0000 | | PEMROGRAMAN WEB | 86.4000 | | PTI | 83.0000 | +---+---+

Contoh Kasus #5. Tampilkan rata nilai untuk setiap mahasiswa, yang rata-rata nilai lebih besar dari 80

Perhatikan kembali kasus kedua di atas. Hasil query menunjukkan bahwa untuk setiap mahasiswa akan ditampilkan nilai rata-rata yang diperoleh. Nah pada kasus ke-5 ini yang ingin ditampilkan adalah hanya mahasiswa yang nilainya lebih dari 80. Artinya untuk  mahasiswa atas nama “INA” yang mendapat nilai rata-rata 70.4 tidak boleh ditampilkan. Solusinya adalah dengan menambahkan kondisi pada query kasus kedua diatas. Nah, jika kondisi suatu query terkait dengan fungsi agregat, maka kita tidak bisa menggunakan kondisi WHERE. Penggunaan WHERE pada fungsi agregat akan menyebabkan error.

Cobalah query berikut ini.

SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim  WHERE  AVG(nilai)>80;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE AVG(nilai)>80' at line 1

(9)

Lalu bagaimana solusinya jika tidak bisa menggunakan WHERE ? MySQL (dan juga database yang lainnya) memiliki struktur kondisi khusus terkait fungsi agregat yaitu

HAVING. Jika query diatas diperbaiki dan menggunakan HAVING, maka hasilnya sebagai  berikut:

SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING  AVG(nilai)>80;

+---+---+---+ | nim | nama | rata_rata | +---+---+---+ | 0911500101 | ADI | 82.0000 | | 0911500102 | IDA | 81.0000 | | 0911500103 | EDI | 80.6000 | | 0911500105 | ANI | 84.4000 | +---+---+---+

Referensi

Dokumen terkait

Dengan kata lain, dapat disimpulkan bahwa peningkatan produksi keripik pare ke depan lebih menjanjikan dari pada keripik sayur lainnya, disamping pula ada

Pada saat bubuk cokelat di buat maka lemak nabati dari biji kakao bernama mentega kakao akan dihilangkan, sedangkan untuk membuat cokelat yang dapat dimakan maka lemak nabati

difabel tersisihkan dari kehidupan keluarga. Banyak anak-anak difabel ditolak, disakiti, disembunyikan, dan diabaikan oleh keluarganya karena dianggap merepotkan dan menambah

Implementasi sistem informasi akan melibatkan semua aktivitas organisasi yang berhubungan dengan penggunaan dan manajemen dari sistem informasi tersebut sehingga menyebabkan

Dalam perhitungan itu ada pengakuan biaya tahun berjalan, karna biaya belum terealisasi maka secara pajak tidak boleh dibebankan sebagai biaya sehingga dikoreksi

Rancangan manajemen pelepasan beban yang berbasis logika fuzzy dalam mempertahankan unjuk kerja frekuensi pada sistem tenaga listrik, mulai fuzzlfikator, aturan

bandeng, kakap putih dan kerapu macan, juga telah berhasil dipijahkan dan diproduksi benihnya antara lain berbagai jenis kerapu kerapu lumpur (E. corallicola),

Bagaimana prosedur peminjaman arsip di Kantor Perpustakaan dan Dokumentasi Daerah Kota Temanggung sudah sesuai dengan prosedur atau belum, jika belum