Rumah >pangkalan data >tutorial mysql >Memahami Perbezaan Antara WHERE dan HAVING dalam SQL
Kedua-dua klausa WHERE dan HAVING digunakan untuk menapis data dalam pertanyaan SQL, tetapi ia mempunyai tujuan yang berbeza dan digunakan pada peringkat pelaksanaan pertanyaan yang berbeza. Berikut ialah perbandingan terperinci:
FASAL MANA:
MENDAPAT Klausa:
DI MANA:
SELECT * FROM employees WHERE salary > 50000;
MEMILIH:
SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 60000;
DI MANA:
MEMILIH:
Aspect | WHERE Clause | HAVING Clause |
---|---|---|
Purpose | Filters rows before grouping. | Filters aggregated groups. |
Use with Aggregates | Cannot use aggregate functions. | Can use aggregate functions. |
Execution Order | Applied before GROUP BY. | Applied after GROUP BY. |
Scope | Operates on individual rows. | Operates on grouped data. |
SELECT * FROM employees WHERE salary > 50000;
SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 60000;
SELECT employee_id, first_name, salary FROM employees WHERE salary > 50000;
Klausa WHERE memfokuskan pada menapis baris individu sebelum sebarang pengumpulan, manakala klausa HAVING memperkatakan menapis data agregat selepas pengumpulan. Memahami perbezaan ini adalah penting untuk menulis pertanyaan SQL yang cekap yang mengendalikan kedua-dua penapisan peringkat baris dan peringkat kumpulan.
Hai, saya Abhay Singh Kathayat!
Saya seorang pembangun timbunan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: kaashshorts28@gmail.com.
Atas ialah kandungan terperinci Memahami Perbezaan Antara WHERE dan HAVING dalam SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!