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

MySQL-এ একই টেবিলে ভিন্ন ID-তে সাধারণ মান 가진 সারি বের করা

এজন্য GROUP BY HAVING ক্লজ ব্যবহার করা হয়। প্রথমে একটি টেবিল তৈরি করি:

mysql> create table DemoTable1467 (
    -> Id int,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.64 sec)

রেকর্ড ইনসার্ট করি (Id 100-এ 'Chris' ৩ বার):

mysql> insert into DemoTable1467 values(100,'Chris');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1467 values(110,'David');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1467 values(120,'Mike');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1467 values(100,'Chris');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1467 values(130,'Carol');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1467 values(100,'Chris');
Query OK, 1 row affected (0.20 sec)

সব রেকর্ড দেখি:

mysql> select * from DemoTable1467;

আউটপুট:

+------+-------+
| Id   | Name  |
+------+-------+
|  100 | Chris |
|  110 | David |
|  120 | Mike  |
|  100 | Chris |
|  130 | Carol |
|  100 | Chris |
+------+-------+
6 rows in set (0.00 sec)

২-এর চেয়ে বেশিবার পুনরাবৃত্ত হওয়া Id বের করার কোয়েরি:

mysql> select Id,Name,count(*) as IdCount from DemoTable1467
    -> group by Id
    -> having IdCount > 2;

আউটপুট:

+------+-------+---------+
| Id   | Name  | IdCount |
+------+-------+---------+
|  100 | Chris |       3 |
+------+-------+---------+
1 row in set (0.00 sec)

ব্যাখ্যা: GROUP BY Id দিয়ে গ্রুপ করা হয়েছে, HAVING দিয়ে কাউন্ট > ২ ফিল্টার করা হয়েছে।

  1. MySQL-এ একই মান 가진 কতটি রো আছে তা গণনা করা

  2. MySQL-এ দুটি কলামের মান সমান নয় এমন সারো সিলেক্ট করা (NULL হ্যান্ডলিংসহ)

  3. MySQL-এ সাবকোয়েরি দিয়ে 세컨্ড লাস্ট (২য় শেষ) রেকর্ড বের করা

  4. Java দিয়ে MySQL ডেটাবেস থেকে লাস্ট রেকর্ড পাওয়া