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

MySQL-এ SUM() ফাংশন IF শর্তসাপেক্ষে ব্যবহার করা

MySQL-এ SUM() এর ভিতরে IF() বা CASE WHEN ব্যবহার করে শর্তসাপেক্ষে যোগফল বের করা যায়। উদাহরণস্বরূপ, 'Online' ও 'Offline' পেমেন্ট মোডের আলাদা আলাদা টোটাল বের করা।

সিনট্যাক্স

SELECT SUM(IF(`condition`, `value_if_true`, `value_if_false`)) AS `alias` FROM `table`;

উদাহরণ: টেবিল ও ডেটা

CREATE TABLE `SumWithIfCondition` (
    `ModeOfPayment` VARCHAR(100),
    `Amount` INT
);

INSERT INTO `SumWithIfCondition` VALUES
('Offline', 10), ('Online', 100),
('Offline', 20), ('Online', 200),
('Offline', 30), ('Online', 300);

কেস ১: Online পেমেন্টের টোটাল

SELECT SUM(IF(`ModeOfPayment` = 'Online', `Amount`, 0)) AS `TotalAmount`
FROM `SumWithIfCondition`;

ফলাফল: 600

কেস ২: Offline পেমেন্টের টোটাল

SELECT SUM(IF(`ModeOfPayment` = 'Offline', `Amount`, 0)) AS `TotalAmount`
FROM `SumWithIfCondition`;

ফলাফল: 60

বিকল্প: CASE WHEN ব্যবহার

SELECT 
    SUM(CASE WHEN `ModeOfPayment` = 'Online' THEN `Amount` ELSE 0 END) AS `OnlineTotal`,
    SUM(CASE WHEN `ModeOfPayment` = 'Offline' THEN `Amount` ELSE 0 END) AS `OfflineTotal`
FROM `SumWithIfCondition`;

CASE WHEN একাধিক শর্তের জন্য আরও পঠনীয় ও স্ট্যান্ডার্ড।

  1. MySQL-এ COUNT() এর ভিতরে CASE শর্ত ব্যবহার করে গণনা করা

  2. MySQL-এ শর্তসাপেক্ষে কাউন্ট করা (SUM ও WHERE ব্যবহার করে)

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL-এ অন্য কলামের শর্তে একটি কলামের যোগফল বের করা (SUM + GROUP BY)