COUNT(*) একক রো রিটার্ন করাতে GROUP BY ব্যবহার করুন যাতে একই মানগুলো গ্রুপ হয় এবং মাল্টিপল রো এলিমিনেট হয়।
টেবিল তৈরি করা
mysql> create table DemoTable (Value int); Query OK, 0 rows affected (0.55 sec)
রেকর্ড ইনসার্ট করা
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(30); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable values(60); Query OK, 1 row affected (0.25 sec)
রেকর্ড প্রদর্শন
mysql> select * from DemoTable;
আউটপুট:
+-------+ | Value | +-------+ | 10 | | 20 | | 10 | | 30 | | 10 | | 20 | | 40 | | 10 | | 20 | | 20 | | 60 | +-------+ 11 rows in set (0.00 sec)
ইউনিক ভ্যালুর কাউন্ট (১০, ২০, ৩০, ৪০, ৬০)
mysql> SELECT COUNT(*) FROM (SELECT * FROM DemoTable GROUP BY Value) AS tbl;
আউটপুট:
+----------+ | COUNT(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec)
ব্যাখ্যা: ইনার কোয়েরি GROUP BY Value দিয়ে ইউনিক ভ্যালুগুলো (১০, ২০, ৩০, ৪০, ৬০) বের করে, বাহিরের COUNT(*) সেগুলো গণনা করে ৫ রিটার্ন করে। সরাসরি COUNT(DISTINCT Value)ও একই ফলাফল দেবে।