Select NAME, count(*) AS NoHobbies from Person p
inner join PERSON_HOBBY_COMBINATION phc
on p.ID = phc.PERSON_ID
group by p.ID, p.NAME
Обратите внимание, что вы должны сгруппировать по ИД и ИМЯ человека.
Вам необходимо сгруппировать по ИМЯ, потому что у вас есть это в выводе, но если у вас есть дубликаты имен, группировка по ИМЯ будет суммировать несколько человекхобби вместе, поэтому вам нужно сгруппироваться и по идентификатору.
Редактировать
Когда вы проверяете ожидаемый результат, вы не хотите, сколько хобби у Джона, но какие хобби.Тогда вам нужно написать
Select p.NAME as PersonName, h.Name as HobbyName, case when phc.ID is null then 'No' else 'Yes' end as HasHobby from Person p
inner join Hobby h
on 1 = 1
left outer join dbo.PersonHobbyCombination phc
on p.ID = phc.PersonID and h.ID = phc.HobbyID