কম্পিউটার টিউটোরিয়াল

MySQL-এ HAVING ক্লজ GROUP BY-র সাথে ব্যবহার

HAVING ক্লজ GROUP BY-এর পরে গ্রুপে ফিল্টার लगাতে ব্যবহৃত হয়। WHERE রো-লেভেল ফিল্টার, HAVING গ্রুপ-লেভেল ফিল্টার।

সিনট্যাক্স

SELECT column_name
FROM yourTableName
GROUP BY column_name
HAVING AGGREGATE_FUNCTION(column_name) operator value;

উদাহরণ

টেবিল ও ডেটা:

CREATE TABLE WhereAfterGroupDemo (
    UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserProcess INT,
    UserThreadId INT
);

INSERT INTO WhereAfterGroupDemo (UserProcess, UserThreadId) VALUES
(1211, 3), (1412, 3), (1510, 4), (1511, 4);

কোয়েরি: UserThreadId গ্রুপ করে যেখানে MAX(UserProcess) < 1510

SELECT UserThreadId
FROM WhereAfterGroupDemo
GROUP BY UserThreadId
HAVING MAX(UserProcess) < 1510;

আউটপুট

+--------------+
| UserThreadId |
+--------------+
| 3            |
+--------------+

ব্যাখ্যা

  • Thread 3: Process 1211, 1412 → MAX = 1412 (< 1510) ✓
  • Thread 4: Process 1510, 1511 → MAX = 1511 (≥ 1510) ✗

WHERE vs HAVING

WHEREHAVING
গ্রুপিং আগে ফিল্টারগ্রুপিং পর ফিল্টার
এগ্রিগেট ফাংশন ব্যবহার 불가এগ্রিগেট ফাংশন ব্যবহার যোগ্য
ইন্ডেক্স ব্যবহার করেইন্ডেক্স ব্যবহার করে না (সাধারণত)
  1. MySQL-এ GROUP BY ও ORDER BY FIELD একসাথে ব্যবহার করে কাস্টম সর্টিং

  2. MySQL GROUP BY এবং HAVING ব্যবহার করে নন-ডুপ্লিকেট ID 가진 রেকর্ড প্রদর্শন করা

  3. MySQL-এ GROUP BY ব্যবহার করে ফিল্ড আপডেট করা

  4. Apache-এ MySQL ব্যবহার (Using MySQL with Apache)