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

MySQL-এ একটি সিংগেল রোর মান যোগ করা (SUM)

MySQL-এ একটি রোর একাধিক কলামের মান যোগ করতে دوটি পদ্ধতি আছে—NULL আছে কিনা তার ওপর নির্ভর করে।

কেস ১: NULL মান নেই

SELECT yourColumnName1 + yourColumnName2 + yourColumnName3 + ... AS anyVariableName FROM yourTableName;

কেস ২: NULL মান থাকতে পারে

IFNULL() ব্যবহার করে NULL কে ০ হিসেবে গণনা করুন:

SELECT IFNULL(yourColumnName1,0) + IFNULL(yourColumnName2,0) + IFNULL(yourColumnName3,0) + ... AS anyVariableName FROM yourTableName;

উদাহরণ

টেবিল তৈরি করি:

mysql> create table SumValueOfSingleRow 
    -> ( 
    -> Id int NOT NULL AUTO_INCREMENT, 
    -> FirstValue int, 
    -> SecondValue int, 
    -> ThirdValue int, 
    -> PRIMARY KEY(Id) 
    -> ); Query OK, 0 rows affected (0.70 sec)

রেকর্ড যোগ করি (NULL সহ):

mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,0,1); 
mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(1,NULL,0); 
mysql> insert into SumValueOfSingleRow(FirstValue,SecondValue,ThirdValue) values(NULL,NULL,NULL);

সকল রেকর্ড

mysql> select *from SumValueOfSingleRow;

আউটপুট

+----+------------+-------------+------------+
| Id | FirstValue | SecondValue | ThirdValue |
+----+------------+-------------+------------+
|  1 | 1          | 0           | 1          |
|  2 | 1          | NULL        | 0          |
|  3 | NULL       | NULL        | NULL       |
+----+------------+-------------+------------+
3 rows in set (0.00 sec)

কেস ১ প্রয়োগ (ভুল ফলাফল)

mysql> select FirstValue+SecondValue+ThirdValue as SingleRowSum from SumValueOfSingleRow;

আউটপুট

+--------------+
| SingleRowSum |
+--------------+
| 2            |
| NULL         |
| NULL         |
+--------------+
3 rows in set (0.06 sec)
সমস্যা: যেকোনো কলামে NULL থাকলে পুরো যোগফল NULL হয়ে যায়।

কেস ২ প্রয়োগ (সঠিক ফলাফল)

mysql> select ifnull(FirstValue,0)+ ifnull(SecondValue,0)+ ifnull(ThirdValue,0) as SingleRowSum from SumValueOfSingleRow;

ফলাফল

+--------------+
| SingleRowSum |
+--------------+
| 2            |
| 1            |
| 0            |
+--------------+
3 rows in set (0.06 sec)
  1. MySQL-এ GROUP_CONCAT() ব্যবহার করে একাধিক রোকে একক স্ট্রিংয়ে জড়ানো (সিংগেল রো আউটপুট)

  2. MySQL-এ EXTRACT() দিয়ে মাস অনুযায়ী মান যোগফল করা

  3. MySQL GROUP BY-এ NULL মান আলাদা আলাদা রো হিসেবে রাখা (IFNULL ব্যবহার করে)

  4. MySQL에서 GROUP_CONCAT으로 전체 컬럼 값을 콤마 구분 단일 행으로 합치기