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!