Ну, это:
select Name, count(Id)
from MyTable
group by Name
даст вам это:
Harry Johns, 1
Adam Taylor, 1
John Smith, 2
Bill Manning, 1
и это (синтаксис MS SQL):
select Name +
case when ( count(Id) > 1 )
then ' ('+cast(count(Id) as varchar)+')'
else ''
end
from MyTable
group by Name
даст вам это:
Harry Johns
Adam Taylor
John Smith (2)
Bill Manning
Вы действительно хотели, чтобы этот другой Джон Смит закончил результаты?
РЕДАКТИРОВАТЬ: О, я вижу, вы хотите сгруппированных последовательных прогонов. В этом случае я бы сказал, что вам нужен курсор или сделать это в коде вашей программы.