我正在寻找一些术语或指示,而不是有人编写查询。但是我不知道要问什么问题,或者要研究什么术语。
所以我有一个表,我们称它为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对发布“ 12”的反应为“ 1”,而对发布“ 15”的反应为“ 0”,那么我将发现他与用户2具有可比性这两个数据点。
当然,随着更多用户对更多帖子的反应,这将变得更加复杂,我将不得不根据用户之间的反应程度对它们进行排序。
无论如何,非常感谢您的阅读,对于在何处阅读有关内容的任何帮助,将不胜感激!
答案 0 :(得分: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;