কম্পিউটার টিউটোরিয়াল

MySQL-এ COUNT(*) এবং GROUP BY দিয়ে মানগুলোর পুনরাবৃত্তি গণনা করা

একটি কলামে একই মান কতবার আসছে তা গণনা করতে 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;
  1. MySQL-এ ফ্লোট ভ্যালু রাউন্ড করে নতুন কলামে ফলাফল প্রদর্শন করা

  2. MySQL কোয়েরি: ডISTINCT ভ্যালুর আওতা গণনা করে নতুন কলামে প্রদর্শন করা

  3. MySQL-এ ডুপ্লিকেট ID গুনুন এবং আলাদা কলামে ফলাফল দেখান

  4. MySQL-এ LEFT() এবং SUBSTRING_INDEX() ব্যবহার করে নামের প্রথম অক্ষর (Initials) বের করা