Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Boleh Menggunakan Fungsi Agregat Tanpa Klausa GROUP BY?

Mengapa MySQL Boleh Menggunakan Fungsi Agregat Tanpa Klausa GROUP BY?

Susan Sarandon
Lepaskan: 2024-11-07 12:52:03
asal
825 orang telah melayarinya

Why Can MySQL Use Aggregate Functions Without a GROUP BY Clause?

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan