Bagaimana untuk Membetulkan Ralat MySQL 1111: Penggunaan Fungsi Kumpulan Tidak Sah Apabila Menghimpunkan Mengikut Lajur?

DDD
Lepaskan: 2024-10-24 12:15:01
asal
807 orang telah melayarinya

How to Fix MySQL Error 1111: Invalid Use of Group Function When Grouping By a Column?

Menyelesaikan Ralat MySQL 1111: Penggunaan Fungsi Kumpulan Tidak Sah

Apabila menggunakan MySQL, anda mungkin menghadapi ralat "Ralat 1111 (HY000): Penggunaan fungsi kumpulan tidak sah" apabila cuba mengagregat data menggunakan fungsi kumpulan seperti COUNT(*) sambil mengumpulkan secara serentak mengikut lajur.

Untuk menyelesaikan ralat ini, elakkan menggunakan fungsi kumpulan dalam klausa SELECT apabila melakukan KUMPULAN MENGIKUT operasi. Sebaliknya, gunakan subkueri atau klausa ORDER BY untuk mendapatkan nilai maksimum yang diingini.

Pertimbangkan contoh berikut:

<code class="mysql">SELECT
    name,
    MAX(COUNT(*)) AS max_count
FROM table
GROUP BY name;</code>
Salin selepas log masuk

Pertanyaan ini akan mengembalikan ralat kerana COUNT() sedang digunakan dalam klausa SELECT sambil juga mengumpulkan mengikut nama. Untuk membetulkannya, alih keluar COUNT() daripada klausa SELECT dan gunakannya sebagai subkueri dalam fungsi MAX:

<code class="mysql">SELECT
    MAX((SELECT COUNT(*) FROM table WHERE name = t.name)) AS max_count
FROM table t
GROUP BY name;</code>
Salin selepas log masuk

Selepas menjalankan pertanyaan ini, anda akan mendapat kiraan maksimum rekod untuk setiap nama dalam jadual. Sebagai alternatif, anda boleh menggunakan klausa ORDER BY untuk memesan keputusan mengikut kiraan dan kemudian ambil hanya rekod pertama:

<code class="mysql">SELECT
    name,
    COUNT(*) AS count
FROM table
GROUP BY name
ORDER BY count DESC
LIMIT 1;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat MySQL 1111: Penggunaan Fungsi Kumpulan Tidak Sah Apabila Menghimpunkan Mengikut Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!