Как получить категории, имеющие отношение к пользователю?

Я разрабатываю сценарий управления дневниками, используя PHP и MySQL. Я застрял в ситуации, для которой я представляю ниже гипотетическую структуру таблицы и мое требование.

 
 | --------------- | -------------- |
 |  Имя пользователя |  Статус |
 | --------------- | -------------- |
 |  Джон |  Открыть |
 | --------------- | -------------- |
 |  Джон |  Назначено |
 | --------------- | -------------- |
 |  Джон |  Закрыто |
 | --------------- | -------------- |
 |  Миллер |  Назначено |
 | --------------- | -------------- |
 |  Миллер |  Назначено |
 | --------------- | -------------- |
 |  Смит |  Закрыто |
 | --------------- | -------------- |

Я ожидаю, что окончательная версия веб-страницы будет выглядеть следующим образом.

 | --------------- | -------------- | -------------- | --- ----------- |
 |  Имя пользователя |  Открыть |  Назначено |  Закрыто |
 | --------------- | -------------- | -------------- | --- ----------- |
 |  Джон |  1 |  1 |  1 |
 | --------------- | -------------- | -------------- | --- ----------- |
 |  Миллер |  0 |  2 |  0 |
 | --------------- | -------------- | -------------- | --- ----------- |
 |  Смит |  0 |  0 |  1 |
 | --------------- | -------------- | -------------- | --- ----------- |

Пожалуйста, предложите, может ли использование MySQL-запроса (с использованием GROUP BY) сделать это готовым, или мне нужно получить небольшую часть логики программирования. Если да, то что я должен кодировать? Я очень беспомощна. Я мог бы предоставить весь сценарий здесь, но я не делал этого, чтобы избежать путаницы.

Related of "Как получить категории, имеющие отношение к пользователю?"

select `User Name`, sum(case when Status = 'Open' then 1 end) as Open, sum(case when Status = 'Assigned' then 1 end) as Assigned, sum(case when Status = 'Closed' then 1 end) as Closed from Status group by `User Name`