Я искал другие вопросы, и мне удалось решить часть того, что я хотел, но я не мог получить от этого ничего.
У меня есть таблица с двумя столбцами (пользователь, друг) вСтол друзей.Каждый пользователь и его / ее друг указаны в таблице следующим образом.
User | Friend
1 2
1 6
2 1
2 3
2 6
Примечание: для каждой пары (пользователь, друг) есть строка (друг, пользователь) Например: 1,2 имеет 2, 1 потому что у пользователя 2 есть друг 1
До сих пор я пришел к следующему запросу, в котором указано количество общих друзей для указанной пары:
select DISTINCT f1.user1 'User', f2.user1 'Friend', COUNT(DISTINCT f1.user2) 'Mutual friends'
from Friends p
inner join Friends f1 on f1.user2 = p.user1
inner join Friends f2 on f2.user2 = p.user1
where f1.user1 = 2 and f2.user1 = 3 and f1.user2 = f2.user2
group by f1.user1, f2.user1;
Вывод, который яесть:
User |Friend |Mutual Friends
1 2 1
Я хочу найти количество общих друзей каждой из пар по всей таблице:
User | Friend | Mutual Friends
1 2 1
1 6 0
2 1 1
2 3 0
2 6 0
Как узнать количество общих друзей для всех пользователейдруг дружит?