Memperbaiki Error Non Aggregated Column Mysql 5 7
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
Saya akan coba menghitung jumlah buku berdasarkan pengarang dengan menggunakan statement COUNT dan GROUP BY
SELECT *,COUNT(pengarang) FROM tb_buku GROUP BY pengarangSehingga menghasilkan data seperti berikut, walaupun yang kita perlukan hanya pengarang dan jumlahnya saja
Atau menghitung jumlah penerbit pada tabel tersebut digrup berdasarkan nama penerbit
SELECT *,COUNT(penerbit) FROM tb_buku GROUP BY penerbitSehingga hasilnya menjadi
Error Non aggregated Column MySQL 5.7Nah, kita coba di MySQL 5.7, apa yang terjadi jika query tersebut dieksekusi?
SELECT *,COUNT(pengarang) FROM tb_buku GROUP BY pengarang
Dan
SELECT *,COUNT(penerbit) FROM tb_buku GROUP BY penerbit
Maksudnya sih (menurut saya sendiri loh), ada kolom yang sebenarnya tidak bergantung pada hasil statement GROUP BY, seperti id, judul, harga.
SolusiUntuk 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)
Artikel ini hanyalah simpanan cache dari url asal penulis yang berkebarangkalian sudah terlalu lama atau sudah dibuang :
https://blog.zdienos.com/2019/03/memperbaiki-error-nonaggregated-column-mysql.html