计数匹配对

问题描述 投票:2回答:1

这有点复杂所以请耐心等待。下面是一个名为“list”的表,有2列。该表包含每个成员的数据和他们喜欢的电影。即会员01喜欢电影02,05,14,21和25.我想知道的是每位会员与另一位会员有多少类似的电影。例如,构件01和构件02具有一个共同的薄膜(薄膜14)。有没有办法在SQL中编写这个?

       List
------      ------
member      film
------      ------
01          02
01          05
01          14
01          21
01          25
02          03
02          09
02          14
03          01
03          05
03          17
03          21
sql count matching
1个回答
1
投票

您可以使用自联接和聚合为此编写常规查询。以下总结了每对用户的结果:

select l1.member, l2.member, count(*) as NumFilmsInCommon
from list l1 join
     list l2
     on l1.member < l2.member and l1.film = l2.film
group by l1.member, l2.member;

<条件只确保每对成员仅在结果集中出现一次。

© www.soinside.com 2019 - 2024. All rights reserved.