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.
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
Atau menghitung jumlah penerbit pada tabel tersebut digrup berdasarkan nama penerbit
Sehingga hasilnya menjadi
Dan
Maksudnya sih (menurut saya sendiri loh), ada kolom yang sebenarnya tidak bergantung pada hasil statement GROUP BY, seperti id, judul, harga.
Dan
Semoga bermanfaat, terima kasih.
(z)
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
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 penerbit
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
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.
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
SELECT penerbit,COUNT(penerbit) FROM tb_buku GROUP BY penerbitBegini 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