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

MySQL-এ শর্তভিত্তিক গণনা (Conditional Count) করে আলাদা কলামে দেখানো

CASE WHEN ... THEN ... ELSE ... END внутри SUM()

একই কুয়েরিতে একাধিক শর্ত অনুযায়ী গণনা করে আলাদা আলাদা কলামে দেখাতে SUM(CASE WHEN condition THEN 1 ELSE 0 END) প্যাটার্ন ব্যবহার করুন।

উদাহরণ

mysql> CREATE TABLE DemoTable1485 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20), StudentSubject VARCHAR(20)
);

mysql> INSERT INTO DemoTable1485 (StudentName, StudentSubject) VALUES 
('Chris', 'MySQL'), ('Robert', 'MongoDB'), ('Robert', 'MongoDB'), ('Chris', 'Java');

mysql> SELECT * FROM DemoTable1485;

কুয়েরি: বিষয় অনুযায়ী ছাত্র গণনা

mysql> SELECT StudentSubject,
    SUM(CASE WHEN StudentName = 'Chris' THEN 1 ELSE 0 END) AS Chris_Count,
    SUM(CASE WHEN StudentName = 'Robert' THEN 1 ELSE 0 END) AS Robert_Count
FROM DemoTable1485
GROUP BY StudentSubject;

ফলাফল

+----------------+-------------+--------------+
| StudentSubject | Chris_Count | Robert_Count |
+----------------+-------------+--------------+
| MySQL          | 1           | 0            |
| MongoDB        | 0           | 2            |
| Java           | 1           | 0            |
+----------------+-------------+--------------+

ব্যাখ্যা: এটি পিভট টেবিল (Pivot Table) বা ক্রস-ট্যাবুলেশন তৈরি করার সহজ পদ্ধতি। MySQL 8.0+ তে COUNT(*) FILTER (WHERE ...) সিনট্যাক্সও ব্যবহার করা যায় (অন্য ডিবিতে)।

  1. MySQL-এ একাধিক সারি গুনুন এবং ফলাফল আলাদা কলামে (একক সারি) দেখান

  2. MySQL CONCAT()으로 여러 컬럼 값을 텍스트와 합쳐 단일 컬럼으로 출력하기

  3. MySQL에서 0/1 컬럼 여러 개를 CASE WHEN으로 종합 판단하기

  4. MySQL-এ CASE WHEN এবং GROUP_CONCAT ব্যবহার করে শর্তসাপেক্ষে কলাম মান কনক্যাটেনেট করা