GROUP BY + HAVING শর্ত
একই ClientId-র জন্য একাধিক সারি থাকলে, যেসব ClientId-র সব সারিতে isMarried = 0 (অবিবাহিত) তা বের করতে GROUP BY ClientId HAVING isMarried = 0 ব্যবহার করুন (MySQL-এ নন-এগريغেটেড কলাম HAVING-এ 허용)।
উদাহরণ
mysql> CREATE TABLE DemoTable1344 (
SequenceId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientId INT, isMarried TINYINT(1)
);
mysql> INSERT INTO DemoTable1344 (ClientId, isMarried) VALUES
(4567, 0), (9876, 0), (5432, 1), (4567, 1), (9873, 0);
mysql> SELECT * FROM DemoTable1344;
কুয়েরি: শুধু অবিবাহিত (isMarried=0) ক্লায়েন্টের প্রথম সারি
mysql> SELECT SequenceId, ClientId, isMarried
FROM DemoTable1344
GROUP BY ClientId
HAVING isMarried = 0;
ফলাফল
+------------+----------+-----------+
| SequenceId | ClientId | isMarried |
+------------+----------+-----------+
| 1 | 4567 | 0 |
| 2 | 9876 | 0 |
| 5 | 9873 | 0 |
+------------+----------+-----------+
ব্যাখ্যা: ClientId 4567-র দুটি সারি আছে (0 এবং 1)। MySQL-এ GROUP BY ClientId দিয়ে প্রথম সারি (SequenceId=1) পিক হয়েছে এবং HAVING isMarried=0 পাস করেছে। কিন্তু এটি অনির্দিষ্ট আচরণ (non-deterministic) — স্ট্রিক্ট মোডে (ONLY_FULL_GROUP_BY) এরর দেবে। সঠিক পদ্ধতিতে MIN(SequenceId) বা সাবকুয়েরি ব্যবহার করা উচিত।