We have a user table :
CREATE TABLE `User` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(60) NOT NULL, `created_At` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `status` tinyint(4) NOT NULL DEFAULT '0', ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
I need to run a group by query where I need a count of users with different status values (0, 1, 2, 3)
I tried following query :
select status, count(*) from User where status in (0, 1, 2, 3) group by status
this gives output for the status values present in the table e.g.
| status | count(*) | | 0 | 10 | | 1 | 11 |
but if the database does not contain let's say users with status values = 2 or 3 these records don't appear with a count 0.
How do I go about this one ?