MySQL में एक ही क्वेरी में कई शर्तों के लिए गिनती करने के लिए GROUP BY या सशर्त एग्रीगेशन का उपयोग करें।
विधि 1: GROUP BY (एक कॉलम के मानों के अनुसार गिनती)
SELECT yourColumnName, COUNT(*) FROM yourTableName GROUP BY yourColumnName;
उदाहरण
टेबल बनाएं:
CREATE TABLE MultipleCountDemo (Id INT, Name VARCHAR(100), Age INT); INSERT INTO MultipleCountDemo VALUES (1, 'Carol', 21), (2, 'Sam', 21), (3, 'Bob', 22), (4, 'John', 23), (5, 'David', 22), (6, 'Adam', 22), (7, 'Johnson', 23), (8, 'Elizabeth', 23);
उम्र के अनुसार गिनती:
SELECT Age, COUNT(*) AS AllSingleCount FROM MultipleCountDemo GROUP BY Age;
परिणाम:
| Age | AllSingleCount |
|---|---|
| 21 | 2 |
| 22 | 3 |
| 23 | 3 |
विधि 2: सशर्त एग्रीगेशन (कई अलग-अलग शर्तें)
SELECT
COUNT(*) AS total,
SUM(CASE WHEN Age = 21 THEN 1 ELSE 0 END) AS age_21,
SUM(CASE WHEN Age = 22 THEN 1 ELSE 0 END) AS age_22,
SUM(CASE WHEN Age > 22 THEN 1 ELSE 0 END) AS age_above_22
FROM MultipleCountDemo;
विधि 3: FILTER क्लॉज (MySQL 8.0+)
SELECT
COUNT(*) FILTER (WHERE Age = 21) AS age_21,
COUNT(*) FILTER (WHERE Age = 22) AS age_22
FROM MultipleCountDemo;