Memperbaiki Error Non Aggregated Column MySQL 5.7

- Maret 18, 2019
Ceritanya lagi belajar SQL Query menggunakan statement GROUP BY, tetapi kok muncul error yah. Padahal menurut tutorial sudah bener begitu syntax nya. Setelah dicek lebih lanjut, ternyata saya menggunakan MySQL versi 5.7.5, di mana pada versi ini, parameter SQL Mode ONLY_FULL_GROUP_BY  menjadi enabled default.



https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by


Biar catatan saya lebih lengkap, kita coba praktik saja. Misalkan saya punya tabel tb_buku seperti ini
Memperbaiki Error Non Aggregated Column MySQL 5.7
Saya akan coba menghitung jumlah buku berdasarkan pengarang dengan menggunakan statement COUNT dan GROUP BY
SELECT *,COUNT(pengarang) FROM tb_buku GROUP BY pengarang
Sehingga menghasilkan data seperti berikut, walaupun yang kita perlukan hanya pengarang dan jumlahnya saja
pengarang - Memperbaiki Error Non Aggregated Column MySQL 5.7
Atau menghitung jumlah penerbit pada tabel tersebut digrup berdasarkan nama penerbit
SELECT *,COUNT(penerbit) FROM tb_buku GROUP BY penerbit
Sehingga hasilnya menjadi

penerbit - Memperbaiki Error Non Aggregated Column MySQL 5.7

Error Non aggregated Column MySQL 5.7

Nah, kita coba di MySQL 5.7, apa yang terjadi jika query tersebut dieksekusi?
SELECT *,COUNT(pengarang) FROM tb_buku GROUP BY pengarang
error - Memperbaiki Error Non Aggregated Column MySQL 5.7

Dan
SELECT *,COUNT(penerbit) FROM tb_buku GROUP BY penerbit
error - Memperbaiki Error Non Aggregated Column MySQL 5.7


Maksudnya sih (menurut saya sendiri loh), ada kolom yang sebenarnya tidak bergantung pada hasil statement GROUP BY, seperti id, judul, harga.

Solusi

Untuk mengatasi masalah tersebut, lakukan SELECT field/kolom yang diperlukan saja, atau GROUP BY kolom yang menggunakan fungsi agregated (COUNT, MAX, MIN, dll)
SELECT pengarang,COUNT(pengarang) FROM tb_buku GROUP BY pengarang
Dan
SELECT penerbit,COUNT(penerbit) FROM tb_buku GROUP BY penerbit
Begini saja postingan Memperbaiki Error Non Aggregated Column MySQL 5.7. Semoga bermanfaat, dan sekali lagi, itu menurut pemahaman saya saja yah (atau silahkan merujuk ke dokumentasi MySQL), kalau salah mohon dikoreksi pada kolom komentar. Jangan lupa follow sosial media zdienos ya!!

Semoga bermanfaat, terima kasih.
(z)


EmoticonEmoticon

 

Start typing and press Enter to search