Вы можете группировать по UserId и суммировать различные коды состояния.
Что-то вроде:
select
UserId,
sum(case status when 1 then 1 else 0 end) as Status1,
sum(case status when 2 then 1 else 0 end) as Status2,
sum(case status when 3 then 1 else 0 end) as Status3
from SomeTable
group by UserId
order by UserId
Вы могли бы также рассмотреть возможность группировки по UserId и статусу, хотя результат, конечно, выложен иначе:
select UserId, status, count(*)
from SomeTable
group by UserId, status
order by UserId, status