MySQL compter dans le même tableau, y compris de comptage à zéro des valeurs

J'ai cette structure de table avec des données:

INSERT INTO `test` (`id`, `email`, `id_user_ref`, `name`) VALUES
(1, '[email protected]', NULL, 'Mike'),
(2, '[email protected]', '1', 'Jhonny'),
(3, '[email protected]', '1', 'Michael'),
(4, '[email protected]', '2', 'Jorhe'),
(5, '[email protected]', '3', 'Mia');

J'ai besoin de compter les id_user_ref pour tous les utilisateurs avec cette requête:

SELECT id, COUNT(name) AS refNr FROM test GROUP BY id_user_ref
HAVING id_user_ref IS NOT NULL;

Cela fonctionne, mais le problème est que j'ai besoin d'afficher tous les résultats, même si le résultat du comptage est de 0.

J'ai essayé plusieurs gauche rejoint à la même table, mais sans succès.

La sortie doit être:

id  refNr
1    2
2    1
3    1
4    0
5    0
vous voulez compter le nombre d'utilisateurs mike invités? ensuite, vous allez courir dans une jointure interne de la table à elle-même: -)
Qu'est-ce que la sortie désirée que vous voulez obtenir à partir de cette requête?
j'ai besoin de savoir, pour chaque personne, combien de personnes ont leur id ref 0 compris
quoi?
j'ai ajouté le résultat attendu à la question

OriginalL'auteur Dsp Marian | 2013-04-02