টেবিল তৈরি এবং ডেটা ইনসার্ট
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) দিয়ে ইনলাইন ইনিশিয়ালাইজেশন করা হয়েছে।