Z twojego przykładu wygląda na to, że chcesz, aby pierwsza kolumna zawierała cokolwiek name
pojawia się na początku alfabetycznie, więc użyłem <
podczas dołączania do stołu.
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
A oto zapytanie w akcji, aby udowodnić, że nie jestem szalony.