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

MySQL-এ CASE স্টেটমেন্ট ব্যবহার করে ০ এবং ০-য়ে বড় মানগুলো গণনা করা

একই কোয়েরিতে ০ এবং ০-য়ে বড় মানগুলো আলাদা আলাদা গণনা করতে CASE স্টেটমেন্ট ব্যবহার করুন। প্রথমে একটি টেবিল তৈরি করি:

mysql> CREATE TABLE DemoTable (Number INT);

রেকর্ড যোগ করি:

mysql> INSERT INTO DemoTable VALUES(10), (0), (20), (50), (0), (0), (40);

সকল রেকর্ড দেখতে:

mysql> SELECT * FROM DemoTable;

আউটপুট:

+--------+
| Number |
+--------+
| 10     |
| 0      |
| 20     |
| 50     |
| 0      |
| 0      |
| 40     |
+--------+

০-য়ে বড় এবং ০-এর সংখ্যা গণনা করার কোয়েরি:

mysql> SELECT 
    SUM(CASE WHEN Number > 0 THEN 1 ELSE 0 END) AS TotalValueWhichIsGreaterThanZero,
    SUM(CASE WHEN Number = 0 THEN 1 ELSE 0 END) AS TotalValueWhichIsEqualToZero
FROM DemoTable WHERE Number >= 0;

আউটপুট:

+----------------------------------+------------------------------+
| TotalValueWhichIsGreaterThanZero | TotalValueWhichIsEqualToZero |
+----------------------------------+------------------------------+
| 4                                | 3                            |
+----------------------------------+------------------------------+

ব্যাখ্যা:

  • CASE WHEN Number > 0 THEN 1 ELSE 0 END: ০-য়ে বড় হলে ১, নয়면 ০।
  • SUM(...): সকল ১ যোগ করে মোট সংখ্যা বের করে।
  • দুইটি CASE একসাথে চলেছে।

সরল পদ্ধতি (MySQL 8.0+): COUNT(CASE WHEN Number > 0 THEN 1 END) — ELSE ০ লিখতে হয় না, NULL হলে COUNT গণনা করে না।

  1. MySQL-এ নির্দিষ্ট কলাম থেকে শুধু 'NO' মান সংখ্যা বের করা

  2. MySQL-এ CURDATE() এবং INTERVAL 1 DAY ব্যবহার করে আজ এবং আগামীকালের রেকর্ড বের করা

  3. MySQL-এ SUBSTRING_INDEX() দিয়ে হাইফেন-বিভক্ত স্ট্রিং আলাদা কলামে বির্ভক্ত করা

  4. MySQL-এ দুটি কলামের মোট মান গণনা করা (NULL বাদ দিয়ে)