MySQL-এ IF() এবং SUM() ফাংশন কম্বাইন করে শর্তসাপেক্ষ কাউন্ট করা যায়। এখানে বছরের ভিত্তিতে উপস্থিত (Present) এবং অনুপস্থিত (Absent) ছাত্রের সংখ্যা বের করা হয়েছে।
টেবিল এবং ডেটা
CREATE TABLE DemoTable1617 (
Attendance VARCHAR(20),
CurrentYear INT
);
INSERT INTO DemoTable1617 VALUES('Present',2019);
INSERT INTO DemoTable1617 VALUES('Absent',2019);
INSERT INTO DemoTable1617 VALUES('Absent',2017);
INSERT INTO DemoTable1617 VALUES('Present',2019);
INSERT INTO DemoTable1617 VALUES('Present',2018);
INSERT INTO DemoTable1617 VALUES('Present',2019);
কুয়েরি: ২০১৯ সালের কাউন্ট
SELECT
SUM(IF(Attendance = 'Present', 1, 0)) AS Present,
SUM(IF(Attendance = 'Absent', 1, 0)) AS Absent
FROM DemoTable1617
WHERE CurrentYear LIKE '2019%';
ফলাফল
+---------+--------+
| Present | Absent |
+---------+--------+
| 3 | 1 |
+---------+--------+
ব্যাখ্যা
IF(Attendance='Present', 1, 0)— Present হলে ১, নাহলে ০SUM(...)— ১ গুলোর যোগফল = Present কাউন্টWHERE CurrentYear LIKE '2019%'— ২০১৯ সালের রো ফিল্টার
আধুনিক বিকল্প: CASE WHEN (SQL স্ট্যান্ডার্ড)
SELECT
SUM(CASE WHEN Attendance = 'Present' THEN 1 ELSE 0 END) AS Present,
SUM(CASE WHEN Attendance = 'Absent' THEN 1 ELSE 0 END) AS Absent
FROM DemoTable1617
WHERE CurrentYear = 2019;
CASE WHEN সব ডেটাবেসে কাজ করে, IF() MySQL-নির্দিষ্ট।