Myślę, że potrzebujesz tylko agregacji warunkowej, a nie podzapytań:
select Max(Counting) as Total, student, stdType,
sum(case when score = '3' then 1 else 0 end) as Score3,
sum(case when score = '4' then 1 else 0 end) as Score4
from #tempBWMSHonors3
group by student, stdType;
Uwaga:jeśli wynik jest liczbą, a nie łańcuchem, nie powinieneś używać pojedynczych cudzysłowów jako stałej.