Я ищу некоторые термины, или направление на это, а не кто-нибудь, чтобы написать запрос. Но я не знаю, какой вопрос задавать, или какой жаргон для исследования.
Итак, у меня есть таблица, позвольте ей вызвать reactions
и она содержит три столбца: пользователи, post_id и реакция:
user | post_id | reaction
1 | 23 | 1
1 | 24 | 0
2 | 15 | 0
3 | 16 | 0
4 | 17 | 1
3 | 14 | 0
2 | 23 | 1
2 | 12 | 1
1 | 17 | 0
Как я могу выбрать пользователя, который будет реагировать на сообщения общего характера с данным пользователем?
Например, если бы знал, что пользователь №5 ответил "1" на пост "12" и ответил "0" на пост "15", то я нашел бы его сопоставимым с пользователем № 2, который так же реагировал на эти два данных точки.
Конечно, это будет усложняться, так как все больше пользователей реагируют на большее количество сообщений, мне придется сортировать их по тому, насколько хорошо реакции выравниваются между пользователями.
В любом случае, спасибо вам заранее за чтение, и всякая помощь в том, где читать дальше, была бы очень признательна!
Вы можете просто подсчитать количество общих реакций с помощью самообучения
select r.user, count(*)
from reactions r join
reactions r2
on r.post_id = r2.post_id and r.reaction = r2.reaction
where r2.user = @user
group by r.user
order by count(*) desc;