Bagaimanakah Saya Boleh Menggunakan Fungsi Agregat Tanpa GROUP BY dalam MySQL?

DDD
Lepaskan: 2024-11-06 07:09:02
asal
363 orang telah melayarinya

How Can I Use Aggregate Functions Without GROUP BY in MySQL?

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
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan