MySQL-এ এগরিক ফাংশন (যেমন SUM()) এর ফলাফল WHERE ক্লজে সরাসরি ব্যবহার করা যায় না। এর পরিবর্তে HAVING ক্লজ ব্যবহার করতে হয়।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (Name VARCHAR(50), Price INT);
mysql> INSERT INTO DemoTable VALUES ('Chris', 30), ('David', 40), ('Chris', 10), ('Mike', 44), ('David', 5);
HAVING ক্লজ ব্যবহার করে কোয়েরি
mysql> SELECT Name, SUM(Price) AS Total_Price
FROM DemoTable
GROUP BY Name
HAVING Total_Price > 40;
ফলাফল:
+-------+-------------+ | Name | Total_Price | +-------+-------------+ | David | 45 | | Mike | 44 | +-------+-------------+
ব্যাখ্যা: GROUP BY Name দিয়ে প্রতিটি নামের টোটাল প্রাইস বের করা হয়েছে। HAVING Total_Price > 40 দিয়ে যাদের টোটাল ৪০ এর বেশি, শুধু তাদের দেখানো হয়েছে। WHERE এখানে কাজ করত না কারণ সেটি গ্রুপিংয়ের আগে ফিল্টার করে।