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

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

পদ্ধতি

COUNT() ফাংশনের ভিতরে CASE WHEN ব্যবহার করে শর্তানুযায়ী গণনা করা যায়। CASE শর্ত পূরণ করলে ১ রিটার্ন করে (গণনা হয়), নয় তবে NULL (গণনা হয় না)।

সারণি ও ডেটা

mysql> create table DemoTable1374 (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int);
mysql> insert into DemoTable1374(Name,Score) values('Chris',45),('David',78),('Bob',45),('Mike',75),('Carol',45),('Adam',89);

কোয়েরি

mysql> select count(case when Score=45 then 1 else NULL end) as SpecificCondition from DemoTable1374;

ফলাফল

+-------------------+
| SpecificCondition |
+-------------------+
| 3                 |
+-------------------+

ব্যাখ্যা

  • CASE WHEN Score=45 THEN 1 ELSE NULL END — স্কোর ৪৫ হলে ১, নয় তবে NULL
  • COUNT() শুধু নন-NULL মান গণনা করে
  • একই কোয়েরিতে একাধিক শর্তের গণনা করা যায়:
    SELECT
      COUNT(CASE WHEN Score=45 THEN 1 END) AS cnt_45,
      COUNT(CASE WHEN Score>80 THEN 1 END) AS cnt_80plus
    FROM DemoTable1374;

টিপ: SUM(CASE WHEN condition THEN 1 ELSE 0 END) দিয়েও একই ফলাফল পাওয়া যায়।

  1. Java-এ MySQL PreparedStatement দিয়ে SELECT কোয়েরি চালানো

  2. MySQL-এ WITH ROLLUP সঠিকভাবে ব্যবহার করা

  3. MySQL LIKE কোয়েরিতে % (পার্সেন্ট) চিহ্ন সার্চ করা (Escape ব্যবহার করে)

  4. MySQL에서 CONTAINS() 대신 CONCAT과 CURDATE로 연도 포함 여부 검사하기