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

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

DDD
Lepaskan: 2025-01-14 17:21:43
asal
835 orang telah melayarinya

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

Perbezaan dan penggunaan klausa WHERE dan HAVING dalam SQL

SQL (Bahasa Pertanyaan Berstruktur) ialah alat yang berkuasa untuk memanipulasi dan mendapatkan semula data pangkalan data. Apabila menggunakan fungsi pengagregatan data seperti COUNT() atau SUM(), adalah penting untuk memahami perbezaan antara klausa HAVING dan WHERE.

Ikhtisar

Klausa WHERE digunakan untuk menapis baris sebelum pengagregatan. Ia menilai keadaan terhadap baris individu dalam jadual.

Klausa HAVING digunakan untuk menapis baris selepas pengagregatan. Ia menilai keadaan berdasarkan data agregat.

Perbezaan utama

Perbezaan paling kritikal antara HAVING dan WHERE ialah masa penapisan mereka:

  • DIMANA: Tapis baris sebelum pengagregatan.
  • MEMILIKI: Tapis baris selepas pengagregatan.

Contoh

Pertimbangkan contoh berikut:

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

Pertanyaan ini menggunakan klausa WHERE untuk memilih semua alamat yang terletak dalam keadaan "MA" sebelum mengumpulkan. Ia kemudian mengumpulkan hasil mengikut bandar dan mengira bilangan alamat di setiap bandar.

Sekarang, mari ubah suai pertanyaan menggunakan klausa HAVING:

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

Dalam pertanyaan yang diubah suai ini, klausa HAVING digunakan untuk menapis hasil selepas pengagregatan. Ia hanya memilih bandar yang mempunyai lebih daripada 5 alamat.

Bila nak guna WHERE dan HAVING

  • WHERE: bagus untuk menapis baris individu sebelum mengagregatkannya, contohnya berdasarkan atribut atau nilai tertentu.
  • MEMILIKI: berguna untuk menapis statistik agregat, seperti memilih kumpulan berdasarkan kiraan minimum atau maksimum, purata atau data agregat lain.

Dengan memahami perbezaan masa antara WHERE dan HAVING, pembangun boleh mendapatkan semula data daripada pangkalan data dengan cekap berdasarkan keadaan tertentu sebelum atau selepas pengagregatan.

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