D'après votre exemple, il semble que vous souhaitiez que la première colonne contienne n'importe quel name
vient en premier par ordre alphabétique, j'ai donc utilisé un <
lors de la jointure de la table à elle-même.
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
Et voici la requête en action pour prouver que je ne suis pas fou.