পদ্ধতি
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 — স্কোর ৪৫ হলে ১, নয় তবে NULLCOUNT()শুধু নন-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) দিয়েও একই ফলাফল পাওয়া যায়।