Do seu exemplo, parece que você quer que a primeira coluna contenha qualquer
name
vem primeiro em ordem alfabética, então usei um <
ao juntar a mesa a si mesma. select count(*), t1.Name, t2.Name
from
tblThings t1 join
tblThings t2 ON t1.ID = t2.ID AND t1.Name < t2.Name
group by t1.Name, t2.Name
E aqui está a consulta em ação para provar que não sou louco.