Z vašeho příkladu to vypadá, že chcete, aby první sloupec obsahoval jakékoli name
je na prvním místě abecedně, takže jsem použil <
při připojování stolu k sobě.
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 tady je dotaz v akci, abych dokázal, že nejsem blázen.