Ini kerana tanpa klausa GROUP BY, output yang dikembalikan oleh MySQL boleh mengelirukan. Kami memberikan contoh berikut dalam jadual 'Pelajar' yang diberikan di bawah untuk tujuan demonstrasi -
mysql> Select * from Student; +------+---------+---------+-----------+ | Id | Name | Address | Subject | +------+---------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 15 | Harshit | Delhi | Commerce | | 20 | Gaurav | Jaipur | Computers | +------+---------+---------+-----------+ 4 rows in set (0.00 sec) mysql> Select count(*), Name from Student; +----------+--------+ | count(*) | name | +----------+--------+ | 4 | Gaurav | +----------+--------+ 1 row in set (0.00 sec)
Daripada hasil pertanyaan di atas, kami dapat melihat bahawa ia mengembalikan output fungsi kumpulan COUNT(*) sebagai jumlah bilangan baris dalam table , tetapi nilai "Gaurav" dalam medan "Nama" mengelirukan kerana atas dasar apa kita melakukan ini, sama ada nilai pertama lajur atau ia disimpan dalam lajur beberapa kali dan MySQL mengembalikannya.
Sekarang, jika kita menulis pertanyaan ini menggunakan klausa GROUP BY, set hasil kelihatan seperti berikut -
mysql> Select count(*), name from student GROUP BY id; +----------+---------+ | count(*) | name | +----------+---------+ | 1 | Gaurav | | 1 | Aarav | | 1 | Harshit | | 1 | Gaurav | +----------+---------+ 4 rows in set (0.00 sec)
Seperti yang dapat dilihat daripada set hasil di atas, dengan bantuan klausa GROUP BY, kita mendapat output yang bermakna.
Atas ialah kandungan terperinci Mengapa kita tidak boleh menggunakan fungsi kumpulan pada medan bukan berkumpulan tanpa klausa GROUP BY dalam pertanyaan MySQL SELECT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!