NULL ভ্যালুগুলকে গ্রুপে না পড়িয়ে আলাদা রাখা
ডিফল্টলি GROUP BY সকল NULL কে একই গ্রুপে ফেলে। IFNULL(col, unique_val) ব্যবহার করে প্রতিটি NULL কে ইউনিক গ্রুপে রাখা যায়।
উদাহরণ
mysql> CREATE TABLE DemoTable1511 (Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName VARCHAR(20));
mysql> INSERT INTO DemoTable1511(FirstName) VALUES ('John'),('Robert'),('Mike'),('Robert'),(NULL),(NULL),('Mike');
সাধারণ GROUP BY (NULL একসাথে)
SELECT MIN(Id), FirstName FROM DemoTable1511 GROUP BY FirstName;
NULL গুলো একসাথে পড়বে।
IFNULL দিয়ে NULL আলাদা রাখা
mysql> SELECT MIN(Id) AS Id, FirstName
-> FROM DemoTable1511
-> GROUP BY FirstName, IFNULL(FirstName, Id)
-> ORDER BY Id;
ফলাফল
+------+-----------+ | Id | FirstName | +------+-----------+ | 1 | John | | 2 | Robert | | 3 | Mike | | 5 | NULL | | 6 | NULL | +------+-----------+
ব্যাখ্যা: IFNULL(FirstName, Id) মানে FirstName NULL হলে Id ব্যবহার করো। যেহেতু Id ইউনিক, তাই প্রতিটি NULL আলাদা গ্রুপে পড়ে।