select ref, count(distinct id) from table group by ref;
Cela vous donnera un nombre d'identifiants distincts par référence.
select ref, count(*) from table group by ref;
Cela vous donnera le nombre d'enregistrements par référence.
MODIFIER :
Essayez ceci pour obtenir le résultat souhaité.
select t.*, m.counter
from table t
join (
select ref, count(distinct id) as counter
from table group by ref
) m on t.ref = m.ref
Exemple sur SQLFiddle :http://sqlfiddle.com/#!9/2b93c/2