Rumah >pangkalan data >tutorial mysql >Mengapa GROUP BY Matter Apabila Menggunakan Fungsi Agregat dalam SQL?

Mengapa GROUP BY Matter Apabila Menggunakan Fungsi Agregat dalam SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-27 00:29:09360semak imbas

Why Does GROUP BY Matter When Using Aggregate Functions in SQL?

Mengapa GROUP BY Penting untuk Fungsi Agregat

Fungsi agregat, seperti SUM(), menggunakan operasi matematik pada set nilai, mengembalikan hasil tunggal . Tanpa GROUP BY, fungsi agregat akan beroperasi pada keseluruhan jadual, selalunya menghasilkan output yang tidak dijangka atau salah.

Pertimbangkan contoh berikut: Anda mempunyai jadual Pekerja dengan gaji bulanan setiap pekerja. Untuk menentukan jumlah perbelanjaan gaji bulanan, anda akan menggunakan pertanyaan berikut:

SELECT EmployeeID, SUM (MonthlySalary) 
FROM Employee

Walau bagaimanapun, melaksanakan pertanyaan ini tanpa GROUP BY hanya akan mengembalikan jadual yang sama dengan setiap gaji pekerja, yang bukan hasil yang diingini.

Menghimpun data mengikut EmployeeID menggunakan GROUP BY memastikan fungsi SUM() digunakan pada gaji amaun untuk setiap pekerja secara berasingan:

SELECT EmployeeID, SUM (MonthlySalary) 
FROM Employee
GROUP BY EmpID

Pertanyaan yang dikemas kini ini kini memberikan hasil yang betul, iaitu jumlah gaji bulanan untuk setiap pekerja.

Dalam SQL, GROUP BY bertindak seperti "untuk setiap" gelung demi fungsi agregat. Ia membahagikan data kepada kumpulan berdasarkan lajur yang ditentukan dan menggunakan fungsi agregat pada setiap kumpulan secara berasingan.

Sebagai contoh, jika jadual Pekerja mengandungi baris berikut:

empid MonthlySalary
1 200
1 300
2 300

Menggunakan pertanyaan GROUP BY, hasilnya ialah:

empid TotalSalary
1 500
2 300

Ini menunjukkan cara GROUP BY membolehkan fungsi agregat untuk melaksanakan operasi pada kumpulan data tertentu, memberikan hasil yang bermakna dan tepat.

Atas ialah kandungan terperinci Mengapa GROUP BY Matter Apabila Menggunakan Fungsi Agregat dalam SQL?. 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