Fungsi Agregat MySQL: Mengapa Tiada KUMPULAN MENGIKUT Klausa Diperlukan?
Dalam MySQL, fungsi agregat boleh digunakan dalam senarai SELECT tanpa disertakan Klausa GROUP BY, tidak seperti produk RDBMS lain seperti SQL Server. Tingkah laku ini disengajakan, memberikan sambungan unik kepada standard.
Sebagai contoh, pertanyaan "SELECT col1,col2,sum(col3) FROM tbl1;" akan dilaksanakan dengan jayanya, mengembalikan satu baris yang mengandungi nilai baris pertama untuk col1 dan col2 dan jumlah semua nilai col3.
Penjelasan
MySQL membenarkan tingkah laku ini kerana ia menganggap bahawa tanpa klausa GROUP BY, semua baris secara tersirat dikumpulkan bersama. Akibatnya, fungsi agregat digunakan pada keseluruhan jadual atau berbilang baris beroperasi pada satu kumpulan tersirat.
Gelagat Sebelumnya
Sebelum MySQL versi 5.7.5, ini tingkah laku tidak tertakluk kepada sebarang sekatan. Walau bagaimanapun, mod SQL pelayan baharu, ONLY_FULL_GROUP_BY, telah diperkenalkan untuk menguatkuasakan pematuhan yang lebih ketat kepada standard SQL. Apabila didayakan, mod ini memerlukan klausa GROUP BY untuk semua penggunaan fungsi agregat.
Kesimpulan
Pengendalian unik fungsi agregat MySQL tanpa klausa GROUP BY menawarkan fleksibiliti dalam data mendapatkan semula. Walau bagaimanapun, adalah penting untuk memahami tingkah laku ini dan mempertimbangkan untuk mendayakan ONLY_FULL_GROUP_BY untuk memastikan pematuhan dengan piawaian SQL.
Atas ialah kandungan terperinci Mengapa MySQL Boleh Menggunakan Fungsi Agregat Tanpa Klausa GROUP BY?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!