WHERE না, HAVING ব্যবহার করুন
এগريغেট ফাংশন (যেমন AVG()) এর ফলাফলে ফিল্টার লাগাতে WHERE কাজ করে না; HAVING ব্যবহার করতে হয়। GROUP BY এর পরে HAVING লাগে।
উদাহরণ
mysql> CREATE TABLE DemoTable1338 (Name VARCHAR(10), Score INT);
mysql> INSERT INTO DemoTable1338 VALUES
('Chris', 8), ('Bob', 4), ('Bob', 9), ('Chris', 6), ('David', 5), ('David', 7);
mysql> SELECT * FROM DemoTable1338;
কুয়েরি: গড় ৯.৫ এর কম olan নামগুলো গড় অনুযায়ী সাজিয়ে
mysql> SELECT Name, AVG(Score) FROM DemoTable1338
GROUP BY Name
HAVING AVG(Score) < 9.5
ORDER BY AVG(Score);
ফলাফল
+-------+------------+
| Name | avg(Score) |
+-------+------------+
| David | 6.0000 |
| Bob | 6.5000 |
| Chris | 7.0000 |
+-------+------------+
ব্যাখ্যা: GROUP BY Name দিয়ে নাম ভিত্তিক গোষ্ঠী। HAVING AVG(Score) < 9.5 গোষ্ঠীর গড় ফিল্টার করে। ORDER BY AVG(Score) গড় অনুযায়ী সাজায়। WHERE সারি-লেভেল ফিল্টার, HAVING গোষ্ঠী-লেভেল ফিল্টার।