Rumah > pangkalan data > tutorial mysql > Mengapakah pertanyaan SQL saya mengira semua baris dan bukannya baris individu, dan bagaimana saya boleh membetulkannya menggunakan GROUP BY?

Mengapakah pertanyaan SQL saya mengira semua baris dan bukannya baris individu, dan bagaimana saya boleh membetulkannya menggunakan GROUP BY?

Patricia Arquette
Lepaskan: 2025-01-18 05:36:10
asal
845 orang telah melayarinya

Why is my SQL query counting all rows instead of individual rows, and how can I fix it using GROUP BY?

Menyelesaikan Masalah Pertanyaan SQL: Kiraan Baris Salah dan Penyelesaian GROUP BY

Pertanyaan SQL anda menghasilkan kiraan baris yang tidak tepat, menjumlahkan semua baris dan bukannya satu baris. Penyelesaiannya terletak pada menggunakan klausa GROUP BY dalam subkueri yang bergabung dengan jadual messages_aura. GROUP BY mengagregatkan baris dengan nilai yang sama dalam lajur yang ditentukan, memberikan kiraan yang betul.

Masalah dan Penyelesaian:

Fasal LEFT JOIN asal hingga messages_aura tidak mempunyai klausa GROUP BY:

<code class="language-sql">LEFT JOIN
(
    SELECT `ID` AS `AuraID`, `Status` AS `AuraStatus`, COUNT(*) AS `Aura`
    FROM messages_aura
) aura ON (var.Poster = aura.AuraID AND var.ID = aura.AuraStatus)</code>
Salin selepas log masuk

Ini mengakibatkan kiraan Aura yang salah kerana jumlah semua baris dalam messages_aura. Menambah GROUP BY membetulkan ini:

<code class="language-sql">LEFT JOIN
(
    SELECT `ID` AS `AuraID`, `Status` AS `AuraStatus`, COUNT(*) AS `Aura`
    FROM messages_aura
    GROUP BY AuraID, AuraStatus
) aura ON (var.Poster = aura.AuraID AND var.ID = aura.AuraStatus)</code>
Salin selepas log masuk

Kini, setiap baris dalam messages_aura dikenal pasti secara unik oleh AuraID dan AuraStatus, yang membawa kepada kiraan Aura yang tepat. Fungsi COUNT(*) mengagregat dengan betul untuk setiap gabungan unik AuraID dan AuraStatus.

Atas ialah kandungan terperinci Mengapakah pertanyaan SQL saya mengira semua baris dan bukannya baris individu, dan bagaimana saya boleh membetulkannya menggunakan GROUP BY?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan