SUM() ফাংশন বুলিয়ান এক্সপ্রেশন (TRUE=1, FALSE=0) নিয়ে কাজ করে। নির্দিষ্ট নামগুলো কতবার আসেছে তা কাউন্ট করতে এটি ব্যবহার করা যায়।
উদাহরণ:
টেবিল তৈরি:
CREATE TABLE DemoTable636 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(100)
);
রেকর্ড যোগ করা:
INSERT INTO DemoTable636(StudentFirstName) VALUES
('John'), ('Robert'), ('Robert'), ('Sam'), ('Mike'), ('John'), ('Robert');
সব রেকর্ড দেখানো:
SELECT * FROM DemoTable636;
আউটপুট:
+-----------+------------------+ | StudentId | StudentFirstName | +-----------+------------------+ | 1 | John | | 2 | Robert | | 3 | Robert | | 4 | Sam | | 5 | Mike | | 6 | John | | 7 | Robert | +-----------+------------------+
নির্দিষ্ট নামগুলোর কাউন্ট:
SELECT
SUM(StudentFirstName = 'John') AS JOHN_COUNT,
SUM(StudentFirstName = 'Robert') AS ROBERT_COUNT,
SUM(StudentFirstName = 'Sam') AS SAM_COUNT,
SUM(StudentFirstName = 'Mike') AS MIKE_COUNT
FROM DemoTable636;
ফলাফল:
+------------+--------------+-----------+------------+ | JOHN_COUNT | ROBERT_COUNT | SAM_COUNT | MIKE_COUNT | +------------+--------------+-----------+------------+ | 2 | 3 | 1 | 1 | +------------+--------------+-----------+------------+
ব্যাখ্যা: StudentFirstName = 'John' প্রতিটি রোয়ের জন্য TRUE (1) বা FALSE (0) রিটার্ন করে। SUM() সেগুলো যোগ করে টোটাল কাউন্ট দেয়। GROUP BY StudentFirstName দিয়ে সব নামের কাউন্ট পাওয়া যায়, কিন্তু নির্দিষ্ট কিছু নামের জন্য এই পদ্ধতি দ্রুত এবং পড়তে সহজ। CASE WHEN ... THEN 1 ELSE 0 END সমান ফলাফল দেবে।