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) প্যাটার্ন খুব কার্যকর।