একটি কলামে একই মান কতবার আসছে তা গণনা করতে COUNT(*) সাথে GROUP BY ব্যবহার করা סט্যান্ডার্ড পদ্ধতি।
টেবিল ও ডেটা তৈরি
mysql> CREATE TABLE DemoTable1942 (Value INT); mysql> INSERT INTO DemoTable1942 VALUES (1), (2), (3), (2), (3), (3), (1);
ডেটা যাচাই
mysql> SELECT * FROM DemoTable1942;
+-------+ | Value | +-------+ | 1 | | 2 | | 3 | | 2 | | 3 | | 3 | | 1 | +-------+
কোয়েরি: প্রতিটি মানের ফ্রিকোয়েন্সি গণনা
mysql> SELECT Value, COUNT(*) AS Frequency
FROM DemoTable1942
GROUP BY Value;
আউটপুট:
+-------+-----------+ | Value | Frequency | +-------+-----------+ | 1 | 2 | | 2 | 2 | | 3 | 3 | +-------+-----------+
অতিরিক্ত তথ্য যোগ করা
SELECT Value, COUNT(*) AS Frequency,
ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER (), 2) AS Percentage
FROM DemoTable1942
GROUP BY Value;
নোট: উইন্ডো ফাংশন SUM() OVER() MySQL 8.0+ এ কাজ করে।
পারফরম্যান্স টিপ
Valueকলামে ইন্ডেক্স থাকলে গ্রুপিং দ্রুত হবে।- বড় টেবিলে
COUNT(*)বদলেCOUNT(Value)ব্যবহার করলে NULL বাদ পড়ে (এখানে NULL নেই)। - শুধু ডুপ্লিকেট খুঁজতে হলে:
HAVING COUNT(*) > 1যোগ করুন।
সর্বাধিক ফ্রিকোয়েন্সি वाला মান (Mode) বের করা
SELECT Value, COUNT(*) AS freq FROM DemoTable1942 GROUP BY Value ORDER BY freq DESC LIMIT 1;