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

MySQL-এ ইউজার-ডিফাইনড ভেরিয়েবল ব্যবহার করে এক কলাম থেকে অন্য কলামের মান ডিরাইভ করা (রানিং টোটাল)


টেবিল তৈরি এবং ডেটা ইনসার্ট

mysql> create table DemoTable1868 ( Value int ); Query OK, 0 rows affected (0.00 sec)
mysql> insert into DemoTable1868 values(10); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1868 values(20); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1868 values(30); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1868 values(40); Query OK, 1 row affected (0.00 sec)

সব রেকর্ড

mysql> select * from DemoTable1868;
+-------+
| Value |
+-------+
|    10 |
|    20 |
|    30 |
|    40 |
+-------+
4 rows in set (0.00 sec)

রানিং টোটাল (Cumulative Sum) ক্যালকুলেট করা

@iterator ভেরিয়েবল ০ দিয়ে ইনিশিয়ালাইজ করে, প্রতিটি সারিতে Value যোগ করে কামুলেটিভ সম বায় করা:

mysql> select Value, (@iterator:=Value+@iterator) as SecondColumn from DemoTable1868, (select @iterator:=0) tbl;
+-------+--------------+
| Value | SecondColumn |
+-------+--------------+
|    10 |           10 |
|    20 |           30 |
|    30 |           60 |
|    40 |          100 |
+-------+--------------+
4 rows in set (0.00 sec)

ব্যাখ্যা: MySQL 8.0+ এ উইন্ডো ফাংশন SUM() OVER (ORDER BY ...) ব্যবহার করাই ভালো এবং স্ট্যান্ডার্ড। পুরনো ভার্সনে এই ভেরিয়েবল ট্রিকটি কাজে লাগত। ক্রস জয়েন (, (select @iterator:=0) tbl) দিয়ে ইনলাইন ইনিশিয়ালাইজেশন করা হয়েছে।

  1. MySQL-এ IS NULL ব্যবহার করে NULL মান যুক্ত কলাম আপডেট করা

  2. MySQL-এ ইউজার-ডিফাইনড ভেরিয়েবল দিয়ে দুটি কলামের মান সোয়াপ করা

  3. MySQL-এ LENGTH ও REPLACE ব্যবহার করে কমা (,) গণনা করা

  4. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা