Rumah > pangkalan data > tutorial mysql > Mengapa Menggunakan SUM() Tanpa GROUP BY Mengembalikan Keputusan Yang Tidak Dijangka?

Mengapa Menggunakan SUM() Tanpa GROUP BY Mengembalikan Keputusan Yang Tidak Dijangka?

Linda Hamilton
Lepaskan: 2024-12-20 16:46:18
asal
604 orang telah melayarinya

Why Does Using SUM() Without GROUP BY Return Unexpected Results?

Memahami Keperluan GROUP BY dengan Fungsi Agregat

Contoh yang diberikan mempamerkan senario yang membingungkan di mana menjumlahkan gaji pekerja tanpa menggunakan GROUP Klausa BY mengakibatkan jadual asal dikembalikan sebagai output. Untuk membongkar misteri ini, kami menyelidiki tujuan dan peranan GROUP BY apabila bekerja dengan fungsi agregat seperti SUM().

GROUP BY, seperti namanya, mengumpulkan baris berdasarkan kriteria yang ditentukan. Pengumpulan ini menjadi sangat penting apabila menggunakan fungsi agregat yang melakukan pengiraan pada kumpulan baris dan bukannya baris individu. Dalam kes kami, fungsi SUM() mengira jumlah Gaji Bulanan untuk setiap ID Pekerja yang unik.

Tanpa menggunakan GROUP BY, pertanyaan akan cuba mengira jumlah semua nilai MonthlySalary tanpa mengumpulkannya mengikut EmployeeID. Ini akan memberikan keputusan yang salah kerana pada asasnya ia akan merumuskan semua gaji dalam jadual, menganggapnya sebagai satu kumpulan besar.

Ambil contoh berikut:

SELECT EmployeeID, SUM(MonthlySalary)
FROM Employee;
Salin selepas log masuk

Hasil pertanyaan ini akan menjadi satu baris dengan EmployeeID sebagai NULL dan jumlah semua gaji. Keputusan ini tidak bermakna kerana ia tidak memberikan maklumat yang diperlukan tentang jumlah gaji khusus pekerja.

Dengan memasukkan GROUP BY dalam pertanyaan, kami memaksa pangkalan data untuk melakukan pengiraan bagi setiap EmployeeID unik, menghasilkan satu yang bermakna output:

SELECT EmployeeID, SUM(MonthlySalary)
FROM Employee
GROUP BY EmployeeID;
Salin selepas log masuk

Kini, hasilnya akan terdiri daripada baris individu untuk setiap pekerja, memaparkan masing-masing EmployeeIDs dan jumlah Gaji Bulanan yang sepadan.

Ringkasnya, GROUP BY memastikan fungsi agregat seperti SUM() digunakan pada kumpulan baris tertentu, membolehkan pengagregatan data yang bermakna. Ia memudahkan pengekstrakan cerapan yang bermakna dan menghalang salah tafsir hasil.

Atas ialah kandungan terperinci Mengapa Menggunakan SUM() Tanpa GROUP BY Mengembalikan Keputusan Yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan