Sql 计数匹配对
这有点复杂,请耐心听我说。下面是一个名为“列表”的表,共有2列。表中有每个成员的数据以及他们喜欢的电影。i、 e成员01喜欢电影02、05、14、21和25。我想知道的是每个成员和另一个成员有多少类似的电影。例如,成员01和成员02有一个共同的胶片(胶片14)。有没有办法用SQL写这个Sql 计数匹配对,sql,count,matching,Sql,Count,Matching,这有点复杂,请耐心听我说。下面是一个名为“列表”的表,共有2列。表中有每个成员的数据以及他们喜欢的电影。i、 e成员01喜欢电影02、05、14、21和25。我想知道的是每个成员和另一个成员有多少类似的电影。例如,成员01和成员02有一个共同的胶片(胶片14)。有没有办法用SQL写这个 List ------ ------ member film ------ ------ 01 02 01 05 01
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
您可以使用自连接和聚合为此编写常规查询。以下总结了每对用户的结果:
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;
选择l1.member、l2.member、count(*)作为NumFilmsInCommon
从列表l1连接
列表l2
关于l1.member