MySQL-এ কোনো কলামের ন্যূনতম মান (minimum value) রাখা রো খুঁজে বের করতে MIN() এগরিগেট ফাংশন এবং GROUP BY ব্যবহার করা হয়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> NumberOfProduct INT
-> );
mysql> INSERT INTO DemoTable(NumberOfProduct) VALUES(40);
mysql> INSERT INTO DemoTable(NumberOfProduct) VALUES(40);
mysql> INSERT INTO DemoTable(NumberOfProduct) VALUES(60);
mysql> INSERT INTO DemoTable(NumberOfProduct) VALUES(60);
সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
+----+-----------------+
| Id | NumberOfProduct |
+----+-----------------+
| 1 | 40 |
| 2 | 40 |
| 3 | 60 |
| 4 | 60 |
+----+-----------------+
প্রতিটি NumberOfProduct-এর জন্য ন্যূনতম Id বের করা
mysql> SELECT NumberOfProduct, MIN(Id)
-> FROM DemoTable
-> GROUP BY NumberOfProduct;
ফলাফল
+-----------------+---------+
| NumberOfProduct | MIN(Id) |
+-----------------+---------+
| 40 | 1 |
| 60 | 3 |
+-----------------+---------+
ব্যাখ্যা:
- NumberOfProduct = 40 এর জন্য ন্যূনতম Id = 1 (প্রথম রো)
- NumberOfProduct = 60 এর জন্য ন্যূনতম Id = 3 (তৃতীয় রো)
বিকল্প: পুরো রো পাওয়ার জন্য ( JOIN ব্যবহার)
SELECT d1.* FROM DemoTable d1
JOIN (
SELECT NumberOfProduct, MIN(Id) AS min_id
FROM DemoTable
GROUP BY NumberOfProduct
) d2 ON d1.NumberOfProduct = d2.NumberOfProduct AND d1.Id = d2.min_id;
এটি প্রতিটি গ্রুপের প্রথম (ন্যূনতম Id) রোটি পুরো ফেরত দেবে।