MySQL-এ নির্দিষ্ট কিছু মানের ঘনত্ব (occurrences) একক কোয়েরিতে বের করতে WHERE ... IN(...) এবং GROUP BY ব্যবহার করা হয়।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(100)
-> );
Query OK, 0 rows affected (0.87 sec)
mysql> INSERT INTO DemoTable(Name) VALUES('John');
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');
mysql> INSERT INTO DemoTable(Name) VALUES('David');
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');
mysql> INSERT INTO DemoTable(Name) VALUES('Chris');
mysql> INSERT INTO DemoTable(Name) VALUES('John');
mysql> INSERT INTO DemoTable(Name) VALUES('Carol');
mysql> INSERT INTO DemoTable(Name) VALUES('Sam');
সব রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable;
আউটপুট
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | Chris | | 3 | David | | 4 | Chris | | 5 | Chris | | 6 | John | | 7 | Carol | | 8 | Sam | +----+-------+ 8 rows in set (0.00 sec)
'John' এবং 'Chris'-এর ঘনত্ব গণনা
mysql> SELECT Name, COUNT(*) AS Occurrences
-> FROM DemoTable
-> WHERE Name IN('John', 'Chris')
-> GROUP BY Name;
আউটপুট
+-------+-------------+ | Name | Occurrences | +-------+-------------+ | John | 2 | | Chris | 3 | +-------+-------------+ 2 rows in set (0.00 sec)
ব্যাখ্যা: WHERE Name IN('John', 'Chris') শুধু এই দুটি নামের রো ফিল্টার করে। GROUP BY Name নাম অনুযায়ী গ্রুপ করে। COUNT(*) প্রতিটি গ্রুপের রো সংখ্যা গণনা করে।
বিকল্প (সব নামের ঘনত্ব): SELECT Name, COUNT(*) FROM DemoTable GROUP BY Name; — WHERE ক্লজ বাদ দিলে সব নামের ঘনত্ব পাওয়া যাবে।