Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menapis Hasil Berkumpulan dengan Cekap dalam MySQL menggunakan Klausa HAVING?

Bagaimana untuk Menapis Hasil Berkumpulan dengan Cekap dalam MySQL menggunakan Klausa HAVING?

Barbara Streisand
Barbara Streisandasal
2024-11-07 20:24:03211semak imbas

How to Efficiently Filter Grouped Results in MySQL using the HAVING Clause?

Menggunakan Klausa HAVING MySQL untuk Menapis Hasil Berkumpulan

Pertanyaan yang anda cuba laksanakan dalam MySQL bertujuan untuk menapis baris berdasarkan tertentu syarat digunakan pada bilangan baris dalam kumpulan. Semasa menggunakan COUNT(*) dalam klausa WHERE ialah pendekatan biasa, ia sememangnya boleh intensif sumber.

Sebagai alternatif, anda boleh menggunakan klausa HAVING MySQL, yang menyediakan kaedah yang lebih cekap untuk menapis data terkumpul. Begini cara anda boleh mencapai hasil yang sama menggunakan HAVING:

SELECT gid
FROM `gd`
GROUP BY gid
HAVING COUNT(*) > 10
ORDER BY lastupdated DESC

Mari pecahkan pertanyaan ini:

  • KUMPULAN OLEH gid mengumpulkan baris mengikut lajur gid, mengagregatkan semua baris dengan nilai gid yang sama.
  • MEmpunyai COUNT(*) > 10 menapis kumpulan yang bilangan baris dalam setiap kumpulan lebih besar daripada 10.
  • ORDER BY lastupdated DESC sort the resulting row in the descending order based on the lastupdated column.

Oleh menggunakan klausa HAVING, pertanyaan ini menghapuskan kumpulan dengan kurang daripada 10 baris dengan cekap dan memberikan hasil yang diingini. Pendekatan ini amat berfaedah dalam senario di mana set data adalah besar, kerana ia mengelakkan overhed pengiraan COUNT(*) untuk setiap baris individu.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Hasil Berkumpulan dengan Cekap dalam MySQL menggunakan Klausa HAVING?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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