Fungsi Agregat MySQL Tanpa GROUP BY: Why and How
Dalam MySQL, fungsi agregat boleh digunakan dalam senarai SELECT tanpa menyatakan GROUP BY klausa, tidak seperti RDBMS lain seperti SQL Server. Tingkah laku ini, yang mungkin kelihatan tidak dijangka, sebenarnya adalah pilihan reka bentuk yang disengajakan.
Apabila fungsi agregat digunakan tanpa GROUP BY, MySQL menganggap keseluruhan set hasil sebagai satu kumpulan. Ini bermakna fungsi agregat mengembalikan nilai tunggal untuk keseluruhan jadual atau subset yang ditentukan dalam pertanyaan.
Sebagai contoh, pertanyaan SELECT col1,col2,sum(col3) FROM tbl1; mengembalikan satu baris yang mengandungi nilai pertama col1 dan col2, bersama-sama dengan jumlah semua nilai dalam col3. Tingkah laku ini boleh berguna dalam senario di mana anda perlu mengira statistik ringkasan tanpa mengumpulkan data.
Tingkah laku fungsi agregat tanpa GROUP BY boleh diubah suai menggunakan mod SQL pelayan ONLY_FULL_GROUP_BY. Secara lalai, mod ini dilumpuhkan dalam versi MySQL sebelum 5.7.5. Walau bagaimanapun, ia boleh didayakan untuk tidak membenarkan fungsi agregat tanpa GROUP BY.
Untuk mendayakan ONLY_FULL_GROUP_BY, tambah baris berikut pada fail konfigurasi MySQL anda (biasanya my.cnf):
sql-mode=ONLY_FULL_GROUP_BY
Sekali didayakan, MySQL akan membuang ralat untuk pertanyaan yang menggunakan fungsi agregat tanpa GROUP BY. Ini boleh membantu memastikan integriti data dan mengelakkan hasil yang salah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat Tanpa GROUP BY dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!