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

MySQL-এ বছর অনুযায়ী উপস্থিত ও অনুপস্থিত ছাত্রের সংখ্যা বের করা

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-নির্দিষ্ট।

  1. MySQL-এ টেবিলের প্রথম এবং শেষ রেকর্ড বের করা

  2. MySQL-এ নির্দিষ্ট কলাম মানের ফ্রিকোয়েন্সি (কাউন্ট) বের করা

  3. MySQL-এ সকল ট্রিগার ও বর্তমান ডেটাবেসের ট্রিগার লিস্ট করা

  4. MySQL-এ ডেটা রেকর্ড ও বর্তমান তারিখের পার্থক্য বের করার পদ্ধতি