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
Linda Hamiltonasal
2024-12-20 16:46:18502semak imbas

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;

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;

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:
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