J'ai une table SQL appelée "posts" qui ressemble à ceci:
id | category
-----------------------
1 | 3
2 | 1
3 | 4
4 | 2
5 | 1
6 | 1
7 | 2
Chaque numéro de catégorie correspond à une catégorie. Comment pourrais-je compter le nombre de fois où chaque catégorie apparaît sur un message tout en ne requête SQL?
Par exemple, une telle requête peut renvoyer un tableau symbolique tel que celui-ci: (1:3, 2:2, 3:1, 4:1)
Ma méthode actuelle consiste à utiliser des requêtes pour chaque catégorie possible, telles que: SELECT COUNT(*) AS num FROM posts WHERE category=#
, puis à combiner les valeurs de retour dans un tableau final. Cependant, je cherche une solution qui utilise une seule requête.
SELECT
category,
COUNT(*) AS `num`
FROM
posts
GROUP BY
category