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

MySQL-এ GROUP BY গ্রুপে নির্দিষ্ট ভ্যালু আছে কিনা যাচাই


SUM(IF()) দিয়ে গ্রুপে ভ্যালু এক্সিস্টেন্স চেক

প্রতিটি গ্রুপে নির্দিষ্ট ভ্যালু (যেমন 'David') আছে কিনা জানতে IF() কন্ডিশনাল এক্সপ্রেশনকে SUM() করুন। TRUE=১, FALSE=০ হলে SUM>0 মানে আছে।

সিনট্যাক্স

SELECT 
  UserId,
  IF(SUM(UserName = 'David'), 'YES', 'NO') AS Has_David
FROM yourTable
GROUP BY UserId;

উদাহরণ

টেবিল তৈরি

mysql> create table GroupbygroupDemo (
    -> UserId int,
    -> UserName varchar(20)
    -> );
Query OK, 0 rows affected (1.48 sec)

ডেটা ইনসার্ট

mysql> insert into GroupbygroupDemo values(10,'John');
Query OK, 1 row affected (0.14 sec)
mysql> insert into GroupbygroupDemo values(10,'Carol');
Query OK, 1 row affected (0.08 sec)
mysql> insert into GroupbygroupDemo values(10,'Carol');
Query OK, 1 row affected (0.12 sec)
mysql> insert into GroupbygroupDemo values(20,'David');
Query OK, 1 row affected (0.17 sec)
mysql> insert into GroupbygroupDemo values(30,'John');
Query OK, 1 row affected (0.12 sec)
mysql> insert into GroupbygroupDemo values(30,'David');
Query OK, 1 row affected (0.20 sec)
mysql> insert into GroupbygroupDemo values(30,'Mike');
Query OK, 1 row affected (0.16 sec)

সকল রেকর্ড

mysql> SELECT * FROM GroupbygroupDemo;

আউটপুট (৭ রো)

+--------+----------+
| UserId | UserName |
+--------+----------+
|     10 | John     |
|     10 | Carol    |
|     10 | Carol    |
|     20 | David    |
|     30 | John     |
|     30 | David    |
|     30 | Mike     |
+--------+----------+

গ্রুপে 'David' আছে কিনা

mysql> SELECT UserId, IF(SUM(UserName = 'David'), 'YES', 'NO') AS Correct_Name_David FROM GroupbygroupDemo GROUP BY UserId;

আউটপুট

+--------+--------------------+
| UserId | Correct_Name_David |
+--------+--------------------+
|     10 | NO                 |
|     20 | YES                |
|     30 | YES                |
+--------+--------------------+

ব্যাখ্যা: UserId=10-এ David নেই (NO), ২০-এ আছে (YES), ৩০-এ আছে (YES)। SUM(boolean) প্যাটার্ন খুব কার্যকর।

  1. MySQL-এ SOUNDEX() ফাংশন ব্যবহার করে ধ্বনিসাম্য খুঁজে বের করা

  2. MySQL-এ গ্রুপ বাই করলে র‍্যান্ডম অর্ডারে ফলাফল পাওয়া

  3. MySQL-এ IFNULL() ফাংশন দিয়ে NULL মানকে ০ দিয়ে প্রতিস্থাপন করা

  4. MySQL-এ GROUP BY ও ORDER BY FIELD একসাথে ব্যবহার করে কাস্টম সর্টিং