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

MySQL-এ উইন্ডো ফাংশন দিয়ে রানিং টোটাল বা নির্দিষ্ট ভাবে সমষ্টি

MySQL 8.0+ এ SUM() OVER() উইন্ডো ফাংশন ব্যবহার করে একটি কলামের মান ক্রমাগত যোগ করে রানিং টোটাল (running total) বা ক্যুমুলেটিভ সমষ্টি বের করা যায়।

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

mysql> CREATE TABLE DemoTable (
    -> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> CustomerValue INT
    -> );
mysql> INSERT INTO DemoTable(CustomerValue) VALUES(10);
mysql> INSERT INTO DemoTable(CustomerValue) VALUES(20);
mysql> INSERT INTO DemoTable(CustomerValue) VALUES(30);
mysql> INSERT INTO DemoTable(CustomerValue) VALUES(40);

সব রেকর্ড দেখুন

mysql> SELECT * FROM DemoTable;
+------------+---------------+
| CustomerId | CustomerValue |
+------------+---------------+
|          1 |            10 |
|          2 |            20 |
|          3 |            30 |
|          4 |            40 |
+------------+---------------+

রানিং টোটাল ক্যালকুলেট

mysql> SELECT CustomerId, 
    -> SUM(CustomerValue) OVER (ORDER BY CustomerId) AS SpecificSum 
    -> FROM DemoTable;

ফলাফল

+------------+-------------+
| CustomerId | SpecificSum |
+------------+-------------+
|          1 |          10 |
|          2 |          30 |
|          3 |          60 |
|          4 |         100 |
+------------+-------------+

ব্যাখ্যা:

  • ১ম রো: ১০
  • ২য় রো: ১০ + ২০ = ৩০
  • ৩য় রো: ১০ + ২০ + ৩০ = ৬০
  • ৪র্থ রো: ১০ + ২০ + ৩০ + ৪০ = ১০০

OVER (ORDER BY CustomerId) ক্লজটি নির্দেশ করে যে CustomerId অনুযায়ী ক্রমানুসারে যোগ করা হবে।

  1. MySQL에서 SUM(조건)으로 특정 값 카운트 한 번에 여러 개 구하기

  2. MySQL-এ একটি কলাম আপডেট করার সেরা পদ্ধতি (UPDATE SET)

  3. MySQL-এ IFNULL() ব্যবহার করে NULL মানকে নির্দিষ্ট ভ্যালু ('Robert') দিয়ে রিপ্লেস করা

  4. MySQL-এ একক কোয়ারি দিয়ে একটি কলামে একাধিক মান কিভাবে ইনসার্ট করবেন?