Från ditt exempel ser det ut som att du vill att den första kolumnen ska innehålla vilket name
som helst kommer först alfabetiskt, så jag använde en <
när man förenar bordet för sig själv.
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
Och här är frågan i aktion för att bevisa att jag inte är galen.