Вот как я бы это написал, очень похоже на то, что написал Билл, с разницей в подсчете отдельных проектов в случае отсутствия уникального ограничения на (emp_id, prj_id) в таблице отношений:
SELECT r1.emp_id, r2.emp_id, COUNT(DISTINCT r1.prj_id) cntProjects
FROM r_emp_prj r1, r_emp_prj r2
WHERE r1.emp_id < r2.emp_id
AND r2.prj_id = r1.prj_id
GROUP BY r1.emp_id, r2.emp_id HAVING COUNT(DISTINCT r1.prj_id) > 1
Если в таблице отношений также хранится роль (dev, lead, q & a и т. Д.) Человека в проекте, можно иметь несколько записей в таблице отношений для одной и той же пары (emp_id, prj_id).
Это также возвращает имена:
SELECT r1.emp_id, emp1.name,
r2.emp_id, emp2.name,
COUNT(DISTINCT r1.prj_id) cntProjects
FROM r_emp_prj r1, r_emp_prj r2,
emp emp1, emp emp2
WHERE r1.emp_id < r2.emp_id
AND r2.prj_id = r1.prj_id
AND emp1.id = r1.emp_id
AND emp2.id = r2.emp_id
GROUP BY r1.emp_id, emp1.name, r2.emp_id, emp2.name
HAVING COUNT(DISTINCT r1.prj_id) > 1