SELECT
lefttbl.name as name_1,
righttbl.name as name_2,
count(*) as together_count
FROM
xx AS lefttbl
INNER JOIN xx AS righttbl on lefttbl.group=righttbl.group
WHERE lefttbl.name<>righttbl.name
GROUP BY name_1,name_2
;
Дает вам желаемую структуру.Я обновил SQL, чтобы убрать необходимость в кавычках, чтобы удовлетворить тех, кто способен правильно определить несовместимость цитат, но не желает ее исправлять.