Rumah > pangkalan data > tutorial mysql > HAVING vs. WHERE dalam SQL: Bila Menggunakan Setiap Klausa untuk Penapisan?

HAVING vs. WHERE dalam SQL: Bila Menggunakan Setiap Klausa untuk Penapisan?

Mary-Kate Olsen
Lepaskan: 2025-01-14 17:06:46
asal
167 orang telah melayarinya

HAVING vs. WHERE in SQL: When to Use Each Clause for Filtering?

Perbezaan dan aplikasi klausa HAVING dan WHERE dalam SQL

Terdapat perbezaan utama antara klausa HAVING dan WHERE apabila menggunakan fungsi agregat dan pertanyaan SQL. Mari selami perbezaan mereka untuk meningkatkan kemahiran SQL anda.

MEMILIKI: menapis selepas pengagregatan

HAVING digunakan untuk menggunakan syarat pada nilai agregat selepas operasi agregat selesai. Dalam erti kata lain, ia bertindak sebagai penapis selepas pengagregatan, menyemak sama ada hasil pengagregatan memenuhi syarat tertentu.

Sebagai contoh, pertanyaan berikut mendapatkan semula bandar di Massachusetts (MA) dan bilangan alamat yang sepadan:

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA'
GROUP BY City;</code>
Salin selepas log masuk

Untuk memperhalusi lagi keputusan dan hanya menunjukkan bandar yang mempunyai lebih daripada lima alamat, gunakan klausa HAVING:

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA'
GROUP BY City
HAVING CNT > 5;</code>
Salin selepas log masuk

DIMANA: Tapis sebelum pengagregatan

Tidak seperti HAVING, WHERE digunakan untuk penapisan sebelum pengagregatan. Ia menilai keadaan sebelum proses pengagregatan. Ini bermakna hanya rekod yang memenuhi syarat WHERE yang ditentukan akan dimasukkan dalam pengagregatan.

Melanjutkan dengan contoh sebelumnya, anda boleh menggunakan klausa WHERE untuk mengehadkan pemilihan kepada bandar di Massachusetts sebelum mengira alamat:

<code class="language-sql">SELECT City, COUNT(1) AS CNT
FROM Address
WHERE State = 'MA' AND City = 'Boston'
GROUP BY City;</code>
Salin selepas log masuk

Perbandingan ciri utama

特性 HAVING WHERE
时间 聚合之后 聚合之前
目的 聚合后过滤 聚合前过滤
作用范围 应用于聚合值 应用于单个记录

Ringkasan

HAVING dan WHERE kedua-duanya memainkan peranan penting dalam pengoptimuman pertanyaan SQL. Dengan memahami fungsi dan masa pelaksanaan yang berbeza, anda boleh memperhalusi hasil anda dengan berkesan dan meningkatkan keupayaan analisis data anda.

Atas ialah kandungan terperinci HAVING vs. WHERE dalam SQL: Bila Menggunakan Setiap Klausa untuk Penapisan?. 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